]> source.dussan.org Git - poi.git/commitdiff
add test for comment modification
authorPJ Fanning <fanningpj@apache.org>
Fri, 26 Nov 2021 13:28:53 +0000 (13:28 +0000)
committerPJ Fanning <fanningpj@apache.org>
Fri, 26 Nov 2021 13:28:53 +0000 (13:28 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1895352 13f79535-47bb-0310-9956-ffa450edef68

poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFComment.java

index 76dfd8bc43da35d212c5ddf577926c67bd1056ea..8a5a17ce2c113140e25311656b983a7adedfa7b7 100644 (file)
@@ -391,6 +391,21 @@ public final class TestXSSFComment extends BaseTestCellComment {
         }
     }
 
+    @Test
+    void testModifiedCommentIsSaved() throws Exception {
+        _testModificationIsSaved(new XSSFWorkbook());
+    }
+
+    @Test
+    void testModifiedCommentIsSavedSXSSF() throws Exception {
+        SXSSFWorkbook workbook = new SXSSFWorkbook();
+        try {
+            _testModificationIsSaved(workbook);
+        } finally {
+            workbook.dispose();
+        }
+    }
+
     private void _testMove(Workbook workbook) throws Exception {
         CommentsTable commentsTable = new CommentsTable();
         try {
@@ -494,4 +509,43 @@ public final class TestXSSFComment extends BaseTestCellComment {
             }
         }
     }
+
+    private void _testModificationIsSaved(Workbook workbook) throws Exception {
+        try (UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream()) {
+            CreationHelper factory = workbook.getCreationHelper();
+            Sheet sheet = workbook.createSheet();
+            Row row = sheet.createRow(0);
+            Cell cell = row.createCell(0);
+            cell.setCellValue("CellA1");
+            ClientAnchor anchor = factory.createClientAnchor();
+            anchor.setCol1(0);
+            anchor.setCol2(1);
+            anchor.setRow1(row.getRowNum());
+            anchor.setRow2(row.getRowNum());
+            Drawing drawing = sheet.createDrawingPatriarch();
+            Comment comment = drawing.createCellComment(anchor);
+            comment.setString(factory.createRichTextString("initText"));
+            comment.setAuthor("initAuthor");
+
+            String uniqueText = UUID.randomUUID().toString();
+            comment.setString(factory.createRichTextString(uniqueText));
+            comment.setAuthor("author" + uniqueText);
+
+            workbook.write(bos);
+
+            try (XSSFWorkbook workbook2 = new XSSFWorkbook(bos.toInputStream())) {
+                XSSFSheet wb2Sheet = workbook2.getSheetAt(0);
+                Map<CellAddress, XSSFComment> cellComments = wb2Sheet.getCellComments();
+                assertEquals(1, cellComments.size());
+                CellAddress address0 = (CellAddress) cellComments.keySet().toArray()[0];
+                assertEquals("A1", address0.formatAsString());
+                XSSFComment savedComment = cellComments.get(address0);
+                assertEquals(comment.getString().getString(), savedComment.getString().getString());
+                assertEquals(comment.getAuthor(), savedComment.getAuthor());
+            }
+        } finally {
+            workbook.close();
+        }
+    }
+
 }