From 94e4eb5276f0d410c1867445c4e7ec14b7a61427 Mon Sep 17 00:00:00 2001 From: Javen O'Neal Date: Mon, 9 May 2016 03:27:32 +0000 Subject: [PATCH] merge TestComment into TestHSSFComment git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1742865 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/hssf/usermodel/AllUserModelTests.java | 2 +- .../poi/hssf/usermodel/TestComment.java | 308 ------------------ .../poi/hssf/usermodel/TestHSSFComment.java | 288 +++++++++++++++- 3 files changed, 288 insertions(+), 310 deletions(-) delete mode 100644 src/testcases/org/apache/poi/hssf/usermodel/TestComment.java diff --git a/src/testcases/org/apache/poi/hssf/usermodel/AllUserModelTests.java b/src/testcases/org/apache/poi/hssf/usermodel/AllUserModelTests.java index 933e7f637..bcbddf055 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/AllUserModelTests.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/AllUserModelTests.java @@ -38,7 +38,7 @@ import org.junit.runners.Suite; TestFormulas.class, TestHSSFCell.class, TestHSSFClientAnchor.class, - TestHSSFComment.class, + //TestHSSFComment.class, //converted to junit4 TestHSSFConditionalFormatting.class, TestHSSFDataFormat.class, TestHSSFDataFormatter.class, diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestComment.java b/src/testcases/org/apache/poi/hssf/usermodel/TestComment.java deleted file mode 100644 index 2613e8cff..000000000 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestComment.java +++ /dev/null @@ -1,308 +0,0 @@ -/* ==================================================================== - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -==================================================================== */ - -package org.apache.poi.hssf.usermodel; - -import static org.junit.Assert.assertArrayEquals; - -import java.io.IOException; - -import junit.framework.TestCase; - -import org.apache.poi.ddf.EscherSpRecord; -import org.apache.poi.hssf.HSSFTestDataSamples; -import org.apache.poi.hssf.model.CommentShape; -import org.apache.poi.hssf.model.HSSFTestModelHelper; -import org.apache.poi.hssf.record.CommonObjectDataSubRecord; -import org.apache.poi.hssf.record.EscherAggregate; -import org.apache.poi.hssf.record.NoteRecord; -import org.apache.poi.hssf.record.ObjRecord; -import org.apache.poi.hssf.record.TextObjectRecord; - -/** - * @author Evgeniy Berlog - * @date 26.06.12 - */ -@SuppressWarnings("deprecation") -public class TestComment extends TestCase { - - public void testResultEqualsToAbstractShape() throws IOException { - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFSheet sh = wb.createSheet(); - HSSFPatriarch patriarch = sh.createDrawingPatriarch(); - - HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor()); - HSSFRow row = sh.createRow(0); - HSSFCell cell = row.createCell(0); - cell.setCellComment(comment); - - CommentShape commentShape = HSSFTestModelHelper.createCommentShape(1025, comment); - - assertEquals(comment.getEscherContainer().getChildRecords().size(), 5); - assertEquals(commentShape.getSpContainer().getChildRecords().size(), 5); - - //sp record - byte[] expected = commentShape.getSpContainer().getChild(0).serialize(); - byte[] actual = comment.getEscherContainer().getChild(0).serialize(); - - assertEquals(expected.length, actual.length); - assertArrayEquals(expected, actual); - - expected = commentShape.getSpContainer().getChild(2).serialize(); - actual = comment.getEscherContainer().getChild(2).serialize(); - - assertEquals(expected.length, actual.length); - assertArrayEquals(expected, actual); - - expected = commentShape.getSpContainer().getChild(3).serialize(); - actual = comment.getEscherContainer().getChild(3).serialize(); - - assertEquals(expected.length, actual.length); - assertArrayEquals(expected, actual); - - expected = commentShape.getSpContainer().getChild(4).serialize(); - actual = comment.getEscherContainer().getChild(4).serialize(); - - assertEquals(expected.length, actual.length); - assertArrayEquals(expected, actual); - - ObjRecord obj = comment.getObjRecord(); - ObjRecord objShape = commentShape.getObjRecord(); - - expected = obj.serialize(); - actual = objShape.serialize(); - - assertEquals(expected.length, actual.length); - //assertArrayEquals(expected, actual); - - TextObjectRecord tor = comment.getTextObjectRecord(); - TextObjectRecord torShape = commentShape.getTextObjectRecord(); - - expected = tor.serialize(); - actual = torShape.serialize(); - - assertEquals(expected.length, actual.length); - assertArrayEquals(expected, actual); - - NoteRecord note = comment.getNoteRecord(); - NoteRecord noteShape = commentShape.getNoteRecord(); - - expected = note.serialize(); - actual = noteShape.serialize(); - - assertEquals(expected.length, actual.length); - assertArrayEquals(expected, actual); - - wb.close(); - } - - public void testAddToExistingFile() throws IOException { - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFSheet sh = wb.createSheet(); - HSSFPatriarch patriarch = sh.createDrawingPatriarch(); - int idx = wb.addPicture(new byte[]{1,2,3}, HSSFWorkbook.PICTURE_TYPE_PNG); - - HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor()); - comment.setColumn(5); - comment.setString(new HSSFRichTextString("comment1")); - comment = patriarch.createCellComment(new HSSFClientAnchor(0,0,100,100,(short)0,0,(short)10,10)); - comment.setRow(5); - comment.setString(new HSSFRichTextString("comment2")); - comment.setBackgroundImage(idx); - assertEquals(comment.getBackgroundImageId(), idx); - - assertEquals(patriarch.getChildren().size(), 2); - - HSSFWorkbook wbBack = HSSFTestDataSamples.writeOutAndReadBack(wb); - sh = wbBack.getSheetAt(0); - patriarch = sh.getDrawingPatriarch(); - - comment = (HSSFComment) patriarch.getChildren().get(1); - assertEquals(comment.getBackgroundImageId(), idx); - comment.resetBackgroundImage(); - assertEquals(comment.getBackgroundImageId(), 0); - - assertEquals(patriarch.getChildren().size(), 2); - comment = patriarch.createCellComment(new HSSFClientAnchor()); - comment.setString(new HSSFRichTextString("comment3")); - - assertEquals(patriarch.getChildren().size(), 3); - HSSFWorkbook wbBack2 = HSSFTestDataSamples.writeOutAndReadBack(wbBack); - sh = wbBack2.getSheetAt(0); - patriarch = sh.getDrawingPatriarch(); - comment = (HSSFComment) patriarch.getChildren().get(1); - assertEquals(comment.getBackgroundImageId(), 0); - assertEquals(patriarch.getChildren().size(), 3); - assertEquals(((HSSFComment) patriarch.getChildren().get(0)).getString().getString(), "comment1"); - assertEquals(((HSSFComment) patriarch.getChildren().get(1)).getString().getString(), "comment2"); - assertEquals(((HSSFComment) patriarch.getChildren().get(2)).getString().getString(), "comment3"); - - wb.close(); - wbBack.close(); - wbBack2.close(); - } - - public void testSetGetProperties() throws IOException { - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFSheet sh = wb.createSheet(); - HSSFPatriarch patriarch = sh.createDrawingPatriarch(); - - HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor()); - comment.setString(new HSSFRichTextString("comment1")); - assertEquals(comment.getString().getString(), "comment1"); - - comment.setAuthor("poi"); - assertEquals(comment.getAuthor(), "poi"); - - comment.setColumn(3); - assertEquals(comment.getColumn(), 3); - - comment.setRow(4); - assertEquals(comment.getRow(), 4); - - comment.setVisible(false); - assertEquals(comment.isVisible(), false); - - HSSFWorkbook wbBack = HSSFTestDataSamples.writeOutAndReadBack(wb); - sh = wbBack.getSheetAt(0); - patriarch = sh.getDrawingPatriarch(); - - comment = (HSSFComment) patriarch.getChildren().get(0); - - assertEquals(comment.getString().getString(), "comment1"); - assertEquals("poi", comment.getAuthor()); - assertEquals(comment.getColumn(), 3); - assertEquals(comment.getRow(), 4); - assertEquals(comment.isVisible(), false); - - comment.setString(new HSSFRichTextString("comment12")); - comment.setAuthor("poi2"); - comment.setColumn(32); - comment.setRow(42); - comment.setVisible(true); - - HSSFWorkbook wbBack2 = HSSFTestDataSamples.writeOutAndReadBack(wbBack); - sh = wbBack2.getSheetAt(0); - patriarch = sh.getDrawingPatriarch(); - comment = (HSSFComment) patriarch.getChildren().get(0); - - assertEquals(comment.getString().getString(), "comment12"); - assertEquals("poi2", comment.getAuthor()); - assertEquals(comment.getColumn(), 32); - assertEquals(comment.getRow(), 42); - assertEquals(comment.isVisible(), true); - - wb.close(); - wbBack.close(); - wbBack2.close(); - } - - public void testExistingFileWithComment(){ - HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("drawings.xls"); - HSSFSheet sheet = wb.getSheet("comments"); - HSSFPatriarch drawing = sheet.getDrawingPatriarch(); - assertEquals(1, drawing.getChildren().size()); - HSSFComment comment = (HSSFComment) drawing.getChildren().get(0); - assertEquals(comment.getAuthor(), "evgeniy"); - assertEquals(comment.getString().getString(), "evgeniy:\npoi test"); - assertEquals(comment.getColumn(), 1); - assertEquals(comment.getRow(), 2); - } - - public void testFindComments() throws IOException{ - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFSheet sh = wb.createSheet(); - HSSFPatriarch patriarch = sh.createDrawingPatriarch(); - - HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor()); - HSSFRow row = sh.createRow(5); - HSSFCell cell = row.createCell(4); - cell.setCellComment(comment); - - HSSFTestModelHelper.createCommentShape(0, comment); - - assertNotNull(sh.findCellComment(5, 4)); - assertNull(sh.findCellComment(5, 5)); - - HSSFWorkbook wbBack = HSSFTestDataSamples.writeOutAndReadBack(wb); - sh = wbBack.getSheetAt(0); - - assertNotNull(sh.findCellComment(5, 4)); - assertNull(sh.findCellComment(5, 5)); - - wb.close(); - wbBack.close(); - } - - public void testInitState() throws IOException{ - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFSheet sh = wb.createSheet(); - HSSFPatriarch patriarch = sh.createDrawingPatriarch(); - - EscherAggregate agg = HSSFTestHelper.getEscherAggregate(patriarch); - assertEquals(agg.getTailRecords().size(), 0); - - HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor()); - assertEquals(agg.getTailRecords().size(), 1); - - HSSFSimpleShape shape = patriarch.createSimpleShape(new HSSFClientAnchor()); - assertNotNull(shape); - - assertEquals(comment.getOptRecord().getEscherProperties().size(), 10); - - wb.close(); - } - - public void testShapeId() throws IOException{ - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFSheet sh = wb.createSheet(); - HSSFPatriarch patriarch = sh.createDrawingPatriarch(); - - HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor()); - - comment.setShapeId(2024); - - assertEquals(comment.getShapeId(), 2024); - - CommonObjectDataSubRecord cod = (CommonObjectDataSubRecord) comment.getObjRecord().getSubRecords().get(0); - assertEquals(2024, cod.getObjectId()); - EscherSpRecord spRecord = (EscherSpRecord) comment.getEscherContainer().getChild(0); - assertEquals(2024, spRecord.getShapeId(), 2024); - assertEquals(2024, comment.getShapeId(), 2024); - assertEquals(2024, comment.getNoteRecord().getShapeId()); - - wb.close(); - } - - public void testAttemptToSave2CommentsWithSameCoordinates(){ - Object err = null; - - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFSheet sh = wb.createSheet(); - HSSFPatriarch patriarch = sh.createDrawingPatriarch(); - patriarch.createCellComment(new HSSFClientAnchor()); - patriarch.createCellComment(new HSSFClientAnchor()); - - try{ - HSSFTestDataSamples.writeOutAndReadBack(wb); - } catch (IllegalStateException e){ - err = 1; - assertEquals(e.getMessage(), "found multiple cell comments for cell $A$1"); - } - assertNotNull(err); - } -} diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java index 32ca5b598..f437b0207 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java @@ -16,11 +16,23 @@ ==================================================================== */ package org.apache.poi.hssf.usermodel; +import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import java.io.IOException; + +import org.apache.poi.ddf.EscherSpRecord; import org.apache.poi.hssf.HSSFITestDataProvider; import org.apache.poi.hssf.HSSFTestDataSamples; +import org.apache.poi.hssf.model.CommentShape; +import org.apache.poi.hssf.model.HSSFTestModelHelper; +import org.apache.poi.hssf.record.CommonObjectDataSubRecord; +import org.apache.poi.hssf.record.EscherAggregate; +import org.apache.poi.hssf.record.NoteRecord; +import org.apache.poi.hssf.record.ObjRecord; +import org.apache.poi.hssf.record.TextObjectRecord; import org.apache.poi.ss.usermodel.BaseTestCellComment; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.ClientAnchor; @@ -187,5 +199,279 @@ public final class TestHSSFComment extends BaseTestCellComment { cell.setCellComment(comment); return comment; - } + } + + @Test + public void resultEqualsToAbstractShape() throws IOException { + HSSFWorkbook wb = new HSSFWorkbook(); + HSSFSheet sh = wb.createSheet(); + HSSFPatriarch patriarch = sh.createDrawingPatriarch(); + + HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor()); + HSSFRow row = sh.createRow(0); + HSSFCell cell = row.createCell(0); + cell.setCellComment(comment); + + CommentShape commentShape = HSSFTestModelHelper.createCommentShape(1025, comment); + + assertEquals(comment.getEscherContainer().getChildRecords().size(), 5); + assertEquals(commentShape.getSpContainer().getChildRecords().size(), 5); + + //sp record + byte[] expected = commentShape.getSpContainer().getChild(0).serialize(); + byte[] actual = comment.getEscherContainer().getChild(0).serialize(); + + assertEquals(expected.length, actual.length); + assertArrayEquals(expected, actual); + + expected = commentShape.getSpContainer().getChild(2).serialize(); + actual = comment.getEscherContainer().getChild(2).serialize(); + + assertEquals(expected.length, actual.length); + assertArrayEquals(expected, actual); + + expected = commentShape.getSpContainer().getChild(3).serialize(); + actual = comment.getEscherContainer().getChild(3).serialize(); + + assertEquals(expected.length, actual.length); + assertArrayEquals(expected, actual); + + expected = commentShape.getSpContainer().getChild(4).serialize(); + actual = comment.getEscherContainer().getChild(4).serialize(); + + assertEquals(expected.length, actual.length); + assertArrayEquals(expected, actual); + + ObjRecord obj = comment.getObjRecord(); + ObjRecord objShape = commentShape.getObjRecord(); + + expected = obj.serialize(); + actual = objShape.serialize(); + + assertEquals(expected.length, actual.length); + //assertArrayEquals(expected, actual); + + TextObjectRecord tor = comment.getTextObjectRecord(); + TextObjectRecord torShape = commentShape.getTextObjectRecord(); + + expected = tor.serialize(); + actual = torShape.serialize(); + + assertEquals(expected.length, actual.length); + assertArrayEquals(expected, actual); + + NoteRecord note = comment.getNoteRecord(); + NoteRecord noteShape = commentShape.getNoteRecord(); + + expected = note.serialize(); + actual = noteShape.serialize(); + + assertEquals(expected.length, actual.length); + assertArrayEquals(expected, actual); + + wb.close(); + } + + @Test + public void addToExistingFile() throws IOException { + HSSFWorkbook wb = new HSSFWorkbook(); + HSSFSheet sh = wb.createSheet(); + HSSFPatriarch patriarch = sh.createDrawingPatriarch(); + int idx = wb.addPicture(new byte[]{1,2,3}, HSSFWorkbook.PICTURE_TYPE_PNG); + + HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor()); + comment.setColumn(5); + comment.setString(new HSSFRichTextString("comment1")); + comment = patriarch.createCellComment(new HSSFClientAnchor(0,0,100,100,(short)0,0,(short)10,10)); + comment.setRow(5); + comment.setString(new HSSFRichTextString("comment2")); + comment.setBackgroundImage(idx); + assertEquals(comment.getBackgroundImageId(), idx); + + assertEquals(patriarch.getChildren().size(), 2); + + HSSFWorkbook wbBack = HSSFTestDataSamples.writeOutAndReadBack(wb); + sh = wbBack.getSheetAt(0); + patriarch = sh.getDrawingPatriarch(); + + comment = (HSSFComment) patriarch.getChildren().get(1); + assertEquals(comment.getBackgroundImageId(), idx); + comment.resetBackgroundImage(); + assertEquals(comment.getBackgroundImageId(), 0); + + assertEquals(patriarch.getChildren().size(), 2); + comment = patriarch.createCellComment(new HSSFClientAnchor()); + comment.setString(new HSSFRichTextString("comment3")); + + assertEquals(patriarch.getChildren().size(), 3); + HSSFWorkbook wbBack2 = HSSFTestDataSamples.writeOutAndReadBack(wbBack); + sh = wbBack2.getSheetAt(0); + patriarch = sh.getDrawingPatriarch(); + comment = (HSSFComment) patriarch.getChildren().get(1); + assertEquals(comment.getBackgroundImageId(), 0); + assertEquals(patriarch.getChildren().size(), 3); + assertEquals(((HSSFComment) patriarch.getChildren().get(0)).getString().getString(), "comment1"); + assertEquals(((HSSFComment) patriarch.getChildren().get(1)).getString().getString(), "comment2"); + assertEquals(((HSSFComment) patriarch.getChildren().get(2)).getString().getString(), "comment3"); + + wb.close(); + wbBack.close(); + wbBack2.close(); + } + + @Test + public void setGetProperties() throws IOException { + HSSFWorkbook wb = new HSSFWorkbook(); + HSSFSheet sh = wb.createSheet(); + HSSFPatriarch patriarch = sh.createDrawingPatriarch(); + + HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor()); + comment.setString(new HSSFRichTextString("comment1")); + assertEquals(comment.getString().getString(), "comment1"); + + comment.setAuthor("poi"); + assertEquals(comment.getAuthor(), "poi"); + + comment.setColumn(3); + assertEquals(comment.getColumn(), 3); + + comment.setRow(4); + assertEquals(comment.getRow(), 4); + + comment.setVisible(false); + assertEquals(comment.isVisible(), false); + + HSSFWorkbook wbBack = HSSFTestDataSamples.writeOutAndReadBack(wb); + sh = wbBack.getSheetAt(0); + patriarch = sh.getDrawingPatriarch(); + + comment = (HSSFComment) patriarch.getChildren().get(0); + + assertEquals(comment.getString().getString(), "comment1"); + assertEquals("poi", comment.getAuthor()); + assertEquals(comment.getColumn(), 3); + assertEquals(comment.getRow(), 4); + assertEquals(comment.isVisible(), false); + + comment.setString(new HSSFRichTextString("comment12")); + comment.setAuthor("poi2"); + comment.setColumn(32); + comment.setRow(42); + comment.setVisible(true); + + HSSFWorkbook wbBack2 = HSSFTestDataSamples.writeOutAndReadBack(wbBack); + sh = wbBack2.getSheetAt(0); + patriarch = sh.getDrawingPatriarch(); + comment = (HSSFComment) patriarch.getChildren().get(0); + + assertEquals(comment.getString().getString(), "comment12"); + assertEquals("poi2", comment.getAuthor()); + assertEquals(comment.getColumn(), 32); + assertEquals(comment.getRow(), 42); + assertEquals(comment.isVisible(), true); + + wb.close(); + wbBack.close(); + wbBack2.close(); + } + + @Test + public void existingFileWithComment(){ + HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("drawings.xls"); + HSSFSheet sheet = wb.getSheet("comments"); + HSSFPatriarch drawing = sheet.getDrawingPatriarch(); + assertEquals(1, drawing.getChildren().size()); + HSSFComment comment = (HSSFComment) drawing.getChildren().get(0); + assertEquals(comment.getAuthor(), "evgeniy"); + assertEquals(comment.getString().getString(), "evgeniy:\npoi test"); + assertEquals(comment.getColumn(), 1); + assertEquals(comment.getRow(), 2); + } + + @Test + public void findComments() throws IOException{ + HSSFWorkbook wb = new HSSFWorkbook(); + HSSFSheet sh = wb.createSheet(); + HSSFPatriarch patriarch = sh.createDrawingPatriarch(); + + HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor()); + HSSFRow row = sh.createRow(5); + HSSFCell cell = row.createCell(4); + cell.setCellComment(comment); + + HSSFTestModelHelper.createCommentShape(0, comment); + + assertNotNull(sh.findCellComment(5, 4)); + assertNull(sh.findCellComment(5, 5)); + + HSSFWorkbook wbBack = HSSFTestDataSamples.writeOutAndReadBack(wb); + sh = wbBack.getSheetAt(0); + + assertNotNull(sh.findCellComment(5, 4)); + assertNull(sh.findCellComment(5, 5)); + + wb.close(); + wbBack.close(); + } + + @Test + public void initState() throws IOException{ + HSSFWorkbook wb = new HSSFWorkbook(); + HSSFSheet sh = wb.createSheet(); + HSSFPatriarch patriarch = sh.createDrawingPatriarch(); + + EscherAggregate agg = HSSFTestHelper.getEscherAggregate(patriarch); + assertEquals(agg.getTailRecords().size(), 0); + + HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor()); + assertEquals(agg.getTailRecords().size(), 1); + + HSSFSimpleShape shape = patriarch.createSimpleShape(new HSSFClientAnchor()); + assertNotNull(shape); + + assertEquals(comment.getOptRecord().getEscherProperties().size(), 10); + + wb.close(); + } + + @Test + public void shapeId() throws IOException{ + HSSFWorkbook wb = new HSSFWorkbook(); + HSSFSheet sh = wb.createSheet(); + HSSFPatriarch patriarch = sh.createDrawingPatriarch(); + + HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor()); + + comment.setShapeId(2024); + + assertEquals(comment.getShapeId(), 2024); + + CommonObjectDataSubRecord cod = (CommonObjectDataSubRecord) comment.getObjRecord().getSubRecords().get(0); + assertEquals(2024, cod.getObjectId()); + EscherSpRecord spRecord = (EscherSpRecord) comment.getEscherContainer().getChild(0); + assertEquals(2024, spRecord.getShapeId(), 2024); + assertEquals(2024, comment.getShapeId(), 2024); + assertEquals(2024, comment.getNoteRecord().getShapeId()); + + wb.close(); + } + + @Test + public void attemptToSave2CommentsWithSameCoordinates(){ + Object err = null; + + HSSFWorkbook wb = new HSSFWorkbook(); + HSSFSheet sh = wb.createSheet(); + HSSFPatriarch patriarch = sh.createDrawingPatriarch(); + patriarch.createCellComment(new HSSFClientAnchor()); + patriarch.createCellComment(new HSSFClientAnchor()); + + try{ + HSSFTestDataSamples.writeOutAndReadBack(wb); + } catch (IllegalStateException e){ + err = 1; + assertEquals(e.getMessage(), "found multiple cell comments for cell $A$1"); + } + assertNotNull(err); + } }