You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2020/12/24 18:42:38 UTC
svn commit: r1884783 [21/40] - in /poi:
site/src/documentation/content/xdocs/ trunk/ trunk/sonar/
trunk/sonar/integration-test/ trunk/sonar/ooxml/
trunk/src/excelant/poi-ant-contrib/
trunk/src/excelant/testcases/org/apache/poi/ss/excelant/ trunk/src/ex...
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/eventmodel/TestAbortableListener.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/eventmodel/TestAbortableListener.java?rev=1884783&r1=1884782&r2=1884783&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/eventmodel/TestAbortableListener.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/eventmodel/TestAbortableListener.java Thu Dec 24 18:42:29 2020
@@ -17,8 +17,8 @@
package org.apache.poi.hssf.eventmodel;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -31,7 +31,7 @@ import org.apache.poi.hssf.record.BOFRec
import org.apache.poi.hssf.record.EOFRecord;
import org.apache.poi.hssf.record.Record;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
/**
* Tests for {@link AbortableHSSFListener}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java?rev=1884783&r1=1884782&r2=1884783&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java Thu Dec 24 18:42:29 2020
@@ -17,10 +17,10 @@
package org.apache.poi.hssf.eventmodel;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -40,8 +40,8 @@ import org.apache.poi.hssf.record.Standa
import org.apache.poi.hssf.record.TestcaseRecordInputStream;
import org.apache.poi.hssf.record.UnknownRecord;
import org.apache.poi.util.NotImplemented;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
/**
* enclosing_type describe the purpose here
@@ -65,7 +65,7 @@ public final class TestEventRecordFactor
ERFListener listener = rec -> {
wascalled[0] = true;
- assertEquals("must be BOFRecord got SID=" + rec.getSid(), rec.getSid(), BOFRecord.sid);
+ assertEquals(rec.getSid(), BOFRecord.sid, "must be BOFRecord got SID=" + rec.getSid());
return true;
};
EventRecordFactory factory = new EventRecordFactory(listener, new short[] {BOFRecord.sid});
@@ -85,7 +85,7 @@ public final class TestEventRecordFactor
eof.serialize(offset,bytes);
factory.processRecords(new ByteArrayInputStream(bytes));
- assertTrue("The record listener must be called", wascalled[0]);
+ assertTrue(wascalled[0], "The record listener must be called");
}
@@ -107,7 +107,7 @@ public final class TestEventRecordFactor
Record[] records = RecordFactory.createRecord(TestcaseRecordInputStream.create(bytes));
- assertEquals("record.length must be 1, was =" + records.length, 1, records.length);
+ assertEquals(1, records.length, "record.length must be 1, was =" + records.length);
byte[] rec1 = bof.serialize();
byte[] rec2 = records[0].serialize();
@@ -121,9 +121,8 @@ public final class TestEventRecordFactor
*/
@NotImplemented
@Test
- @Ignore
+ @Disabled
public void testCreateContinuedRecord() {
- // fail("not implemented");
}
@@ -145,7 +144,7 @@ public final class TestEventRecordFactor
}
@Test
- @Ignore("same as testContinuedUnknownRecord but with SequenceInputStream which causes the available() bug 59893")
+ @Disabled("same as testContinuedUnknownRecord but with SequenceInputStream which causes the available() bug 59893")
public void bug59893() {
Iterator<ByteArrayInputStream> iter = Stream.of(CONTINUE_DATA).map(ByteArrayInputStream::new).iterator();
SequenceInputStream sis = new SequenceInputStream(IteratorUtils.asEnumeration(iter));
@@ -164,6 +163,6 @@ public final class TestEventRecordFactor
};
EventRecordFactory factory = new EventRecordFactory(listener, new short[] {-256, 0x3C});
factory.processRecords(data);
- assertFalse("left over input data", expectedData.hasNext());
+ assertFalse(expectedData.hasNext(), "left over input data");
}
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestEventWorkbookBuilder.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestEventWorkbookBuilder.java?rev=1884783&r1=1884782&r2=1884783&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestEventWorkbookBuilder.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestEventWorkbookBuilder.java Thu Dec 24 18:42:29 2020
@@ -17,9 +17,9 @@
package org.apache.poi.hssf.eventusermodel;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.IOException;
import java.io.InputStream;
@@ -31,14 +31,13 @@ import org.apache.poi.hssf.eventusermode
import org.apache.poi.hssf.model.HSSFFormulaParser;
import org.apache.poi.hssf.model.InternalWorkbook;
import org.apache.poi.hssf.record.FormulaRecord;
-import org.apache.poi.hssf.record.Record;
import org.apache.poi.hssf.usermodel.HSSFEvaluationWorkbook;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.formula.ptg.Ptg;
import org.apache.poi.ss.formula.ptg.Ref3DPtg;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/**
* Tests for {@link EventWorkbookBuilder}
@@ -47,7 +46,7 @@ public final class TestEventWorkbookBuil
private final List<FormulaRecord> fRecs = new ArrayList<>();
private SheetRecordCollectingListener listener;
- @Before
+ @BeforeEach
public void setUp() throws IOException {
HSSFRequest req = new HSSFRequest();
fRecs.clear();
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestFormatTrackingHSSFListener.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestFormatTrackingHSSFListener.java?rev=1884783&r1=1884782&r2=1884783&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestFormatTrackingHSSFListener.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestFormatTrackingHSSFListener.java Thu Dec 24 18:42:29 2020
@@ -16,9 +16,9 @@
==================================================================== */
package org.apache.poi.hssf.eventusermodel;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.File;
import java.util.ArrayList;
@@ -28,9 +28,9 @@ import org.apache.poi.hssf.HSSFTestDataS
import org.apache.poi.hssf.record.CellValueRecordInterface;
import org.apache.poi.hssf.record.FormulaRecord;
import org.apache.poi.hssf.record.NumberRecord;
-import org.apache.poi.hssf.record.Record;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
/**
* Tests for FormatTrackingHSSFListener
*/
@@ -43,14 +43,14 @@ public final class TestFormatTrackingHSS
mockListen = new MockHSSFListener();
listener = new FormatTrackingHSSFListener(mockListen);
req.addListenerForAllRecords(listener);
-
+
File file = HSSFTestDataSamples.getSampleFile(filename);
HSSFEventFactory factory = new HSSFEventFactory();
POIFSFileSystem fs = new POIFSFileSystem(file);
factory.processWorkbookEvents(req, fs);
fs.close();
- }
-
+ }
+
@Test
public void testFormats() throws Exception {
processFile("MissingBits.xls");
@@ -60,7 +60,7 @@ public final class TestFormatTrackingHSS
assertEquals("_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)", listener.getFormatString(43));
assertEquals("_(\"$\"* #,##0.00_);_(\"$\"* (#,##0.00);_(\"$\"* \"-\"??_);_(@_)", listener.getFormatString(44));
}
-
+
/**
* Ensure that all number and formula records can be
* turned into strings without problems.
@@ -70,40 +70,40 @@ public final class TestFormatTrackingHSS
*/
@Test
public void testTurnToString() throws Exception {
- String[] files = new String[] {
- "45365.xls", "45365-2.xls", "MissingBits.xls"
+ String[] files = new String[] {
+ "45365.xls", "45365-2.xls", "MissingBits.xls"
};
for (String file : files) {
processFile(file);
-
+
// Check we found our formats
assertTrue(listener.getNumberOfCustomFormats() > 5);
assertTrue(listener.getNumberOfExtendedFormats() > 5);
-
+
// Now check we can turn all the numeric
// cells into strings without error
for(org.apache.poi.hssf.record.Record r : mockListen._records) {
CellValueRecordInterface cvr = null;
-
+
if(r instanceof NumberRecord) {
cvr = (CellValueRecordInterface)r;
}
if(r instanceof FormulaRecord) {
cvr = (CellValueRecordInterface)r;
}
-
+
if(cvr != null) {
- // Should always give us a string
+ // Should always give us a string
String s = listener.formatNumberDateCell(cvr);
assertNotNull(s);
assertTrue(s.length() > 0);
}
}
-
+
// TODO - test some specific format strings
}
}
-
+
private static final class MockHSSFListener implements HSSFListener {
public MockHSSFListener() {}
private final List<org.apache.poi.hssf.record.Record> _records = new ArrayList<>();
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestHSSFEventFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestHSSFEventFactory.java?rev=1884783&r1=1884782&r2=1884783&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestHSSFEventFactory.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestHSSFEventFactory.java Thu Dec 24 18:42:29 2020
@@ -17,10 +17,11 @@
package org.apache.poi.hssf.eventusermodel;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.IOException;
import java.io.InputStream;
@@ -40,7 +41,7 @@ import org.apache.poi.hssf.record.Select
import org.apache.poi.hssf.record.WindowTwoRecord;
import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
/**
* Testing for {@link HSSFEventFactory}
@@ -115,11 +116,11 @@ public final class TestHSSFEventFactory
openSample("WORKBOOK_in_capitals.xls");
}
- @Test(expected = EncryptedDocumentException.class)
+ @Test
@SuppressWarnings("java:S2699")
- public void testWithPasswordProtectedWorkbooksNoPass() throws Exception {
+ public void testWithPasswordProtectedWorkbooksNoPass() {
// Without a password, can't be read
- openSample("xor-encryption-abc.xls");
+ assertThrows(EncryptedDocumentException.class, () -> openSample("xor-encryption-abc.xls"));
}
@Test
@@ -157,10 +158,10 @@ public final class TestHSSFEventFactory
}
}
- assertTrue("Sheet record not found", hasSheet);
- assertTrue("Numeric record for A1 not found", hasA1);
- assertTrue("Numeric record for A2 not found", hasA2);
- assertTrue("Numeric record for A3 not found", hasA3);
+ assertTrue(hasSheet, "Sheet record not found");
+ assertTrue(hasA1, "Numeric record for A1 not found");
+ assertTrue(hasA2, "Numeric record for A2 not found");
+ assertTrue(hasA3, "Numeric record for A3 not found");
} finally {
Biff8EncryptionKey.setCurrentUserPassword(null);
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java?rev=1884783&r1=1884782&r2=1884783&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java Thu Dec 24 18:42:29 2020
@@ -17,8 +17,8 @@
package org.apache.poi.hssf.eventusermodel;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.IOException;
import java.io.InputStream;
@@ -36,12 +36,11 @@ import org.apache.poi.hssf.record.Dimens
import org.apache.poi.hssf.record.LabelSSTRecord;
import org.apache.poi.hssf.record.MulBlankRecord;
import org.apache.poi.hssf.record.NumberRecord;
-import org.apache.poi.hssf.record.Record;
import org.apache.poi.hssf.record.RowRecord;
import org.apache.poi.hssf.record.SharedFormulaRecord;
import org.apache.poi.hssf.record.WindowTwoRecord;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
/**
* Tests for MissingRecordAwareHSSFListener
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java?rev=1884783&r1=1884782&r2=1884783&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java Thu Dec 24 18:42:29 2020
@@ -19,9 +19,9 @@ package org.apache.poi.hssf.extractor;
import static org.apache.poi.POITestCase.assertContains;
import static org.apache.poi.POITestCase.assertStartsWith;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.File;
import java.io.IOException;
@@ -34,7 +34,7 @@ import org.apache.poi.hssf.usermodel.HSS
import org.apache.poi.poifs.filesystem.DirectoryNode;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.util.LocaleUtil;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
/**
*
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java?rev=1884783&r1=1884782&r2=1884783&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java Thu Dec 24 18:42:29 2020
@@ -18,10 +18,10 @@
package org.apache.poi.hssf.extractor;
import static org.apache.poi.POITestCase.assertContains;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.ByteArrayOutputStream;
import java.io.File;
@@ -38,8 +38,9 @@ import org.apache.poi.POIDataSamples;
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.poifs.filesystem.OfficeXmlFileException;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import org.apache.poi.util.NullPrintStream;
import org.apache.poi.util.RecordFormatException;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
/**
* Unit tests for the Excel 5/95 and Excel 4 (and older) text
@@ -228,38 +229,31 @@ public final class TestOldExcelExtractor
}
}
- @Test(expected=OfficeXmlFileException.class)
+ @Test
public void testOpenInvalidFile1() throws IOException {
// a file that exists, but is a different format
- createExtractor("WithVariousData.xlsx").close();
- }
-
+ assertThrows(OfficeXmlFileException.class, () -> createExtractor("WithVariousData.xlsx").close());
- @Test(expected=RecordFormatException.class)
- public void testOpenInvalidFile2() throws IOException {
// a completely different type of file
- createExtractor("48936-strings.txt").close();
- }
+ assertThrows(RecordFormatException.class, () -> createExtractor("48936-strings.txt").close());
- @Test(expected=FileNotFoundException.class)
- public void testOpenInvalidFile3() throws IOException {
// a POIFS file which is not a Workbook
try (InputStream is = POIDataSamples.getDocumentInstance().openResourceAsStream("47304.doc")) {
- new OldExcelExtractor(is).close();
+ assertThrows(FileNotFoundException.class, () -> new OldExcelExtractor(is).close());
}
}
- @Test(expected=EmptyFileException.class)
- public void testOpenNonExistingFile() throws IOException {
+ @Test
+ public void testOpenNonExistingFile() {
// a file that exists, but is a different format
- new OldExcelExtractor(new File("notexistingfile.xls")).close();
+ assertThrows(EmptyFileException.class, () -> new OldExcelExtractor(new File("notexistingfile.xls")).close());
}
@Test
public void testInputStream() throws IOException {
File file = HSSFTestDataSamples.getSampleFile("testEXCEL_3.xls");
try (InputStream stream = new FileInputStream(file);
- OldExcelExtractor extractor = new OldExcelExtractor(stream);) {
+ OldExcelExtractor extractor = new OldExcelExtractor(stream)) {
String text = extractor.getText();
assertNotNull(text);
}
@@ -299,27 +293,23 @@ public final class TestOldExcelExtractor
}
}
- @Test(expected = FileNotFoundException.class)
+ @Test
public void testDirectoryNodeInvalidFile() throws IOException {
File file = POIDataSamples.getDocumentInstance().getFile("test.doc");
- try (POIFSFileSystem fs = new POIFSFileSystem(file);
- OldExcelExtractor extractor = new OldExcelExtractor(fs.getRoot())) {
- fail("Should throw exception here");
+ try (POIFSFileSystem fs = new POIFSFileSystem(file)) {
+ assertThrows(FileNotFoundException.class, () -> new OldExcelExtractor(fs.getRoot()));
}
}
- @Test(expected = ExitException.class)
- public void testMainUsage() throws IOException {
+ @Test
+ public void testMainUsage() {
PrintStream save = System.err;
SecurityManager sm = System.getSecurityManager();
System.setSecurityManager(new NoExitSecurityManager());
try {
- try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
- PrintStream str = new PrintStream(out, false, "UTF-8");
- System.setErr(str);
- // calls System.exit()
- OldExcelExtractor.main(new String[]{});
- }
+ System.setErr(new NullPrintStream());
+ // calls System.exit()
+ assertThrows(ExitException.class, () -> OldExcelExtractor.main(new String[]{}));
} finally {
System.setSecurityManager(sm);
System.setErr(save);
@@ -336,13 +326,13 @@ public final class TestOldExcelExtractor
System.setOut(str);
OldExcelExtractor.main(new String[] {file.getAbsolutePath()});
String string = out.toString("UTF-8");
- assertTrue("Had: " + string, string.contains("Table C-13--Lemons"));
+ assertTrue(string.contains("Table C-13--Lemons"), "Had: " + string);
} finally {
System.setOut(save);
}
}
- @Test(expected = EncryptedDocumentException.class)
+ @Test
public void testEncryptionException() throws IOException {
//test file derives from Common Crawl
File file = HSSFTestDataSamples.getSampleFile("60284.xls");
@@ -350,7 +340,7 @@ public final class TestOldExcelExtractor
try (OldExcelExtractor ex = new OldExcelExtractor(file)) {
assertEquals(5, ex.getBiffVersion());
assertEquals(5, ex.getFileType());
- ex.getText();
+ assertThrows(EncryptedDocumentException.class, ex::getText);
}
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingAggregate.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingAggregate.java?rev=1884783&r1=1884782&r2=1884783&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingAggregate.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingAggregate.java Thu Dec 24 18:42:29 2020
@@ -17,12 +17,11 @@
package org.apache.poi.hssf.model;
import static org.apache.poi.poifs.storage.RawDataUtil.decompress;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -32,6 +31,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Stream;
import org.apache.poi.ddf.DefaultEscherRecordFactory;
import org.apache.poi.ddf.EscherContainerRecord;
@@ -55,7 +55,10 @@ import org.apache.poi.hssf.usermodel.HSS
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFTestHelper;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
public class TestDrawingAggregate {
/**
@@ -123,82 +126,69 @@ public class TestDrawingAggregate {
}
}
+ public static Stream<Arguments> samples() {
+ File testData = new File(System.getProperty("POI.testdata.path"), "spreadsheet");
+ File[] files = testData.listFiles((dir, name) -> name.endsWith(".xls"));
+ assertNotNull(files, "Need to find files in test-data path, had path: " + testData);
+ return Stream.of(files).map(Arguments::of);
+ }
+
/**
+ * test that we correctly read and write drawing aggregates in all .xls files in POI test samples.
* iterate over all sheets, aggregate drawing records (if there are any)
* and remember information about the aggregated data.
* Then serialize the workbook, read back and assert that the aggregated data is preserved.
*
* The assertion is strict meaning that the drawing data before and after save must be equal.
*/
- private static void assertWriteAndReadBack(HSSFWorkbook wb) throws IOException {
- // map aggregate info by sheet index
- Map<Integer, DrawingAggregateInfo> aggs = new HashMap<>();
- for(int i = 0; i < wb.getNumberOfSheets(); i++){
- HSSFSheet sheet = wb.getSheetAt(i);
- DrawingAggregateInfo info = DrawingAggregateInfo.get(sheet);
- if(info != null) {
- aggs.put(i, info);
- HSSFPatriarch p = sheet.getDrawingPatriarch();
-
- // compare aggregate.serialize() with raw bytes from the record stream
- EscherAggregate agg = HSSFTestHelper.getEscherAggregate(p);
-
- byte[] dgBytes1 = info.getRawBytes();
- byte[] dgBytes2 = agg.serialize();
-
- assertEquals("different size of raw data ande aggregate.serialize()", dgBytes1.length, dgBytes2.length);
- assertArrayEquals("raw drawing data (" + dgBytes1.length + " bytes) and aggregate.serialize() are different.", dgBytes1, dgBytes2);
- }
- }
+ @ParameterizedTest
+ @MethodSource("samples")
+ public void testAllTestSamples(File file) throws IOException {
+ boolean ignoreParse = true;
+ try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook(file.getName())) {
+ ignoreParse = false;
+
+ // map aggregate info by sheet index
+ Map<Integer, DrawingAggregateInfo> aggs = new HashMap<>();
+ for (int i = 0; i < wb.getNumberOfSheets(); i++){
+ HSSFSheet sheet = wb.getSheetAt(i);
+ DrawingAggregateInfo info = DrawingAggregateInfo.get(sheet);
+ if(info != null) {
+ aggs.put(i, info);
+ HSSFPatriarch p = sheet.getDrawingPatriarch();
- if(aggs.size() != 0){
- HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb);
- for(int i = 0; i < wb2.getNumberOfSheets(); i++){
- DrawingAggregateInfo info1 = aggs.get(i);
- if(info1 != null) {
- HSSFSheet sheet2 = wb2.getSheetAt(i);
- DrawingAggregateInfo info2 = DrawingAggregateInfo.get(sheet2);
- byte[] dgBytes1 = info1.getRawBytes();
- byte[] dgBytes2 = info2.getRawBytes();
- assertEquals("different size of drawing data before and after save", dgBytes1.length, dgBytes2.length);
- assertArrayEquals("drawing data (" + dgBytes1.length + " bytes) before and after save is different.", dgBytes1, dgBytes2);
+ // compare aggregate.serialize() with raw bytes from the record stream
+ EscherAggregate agg = HSSFTestHelper.getEscherAggregate(p);
+
+ byte[] dgBytes1 = info.getRawBytes();
+ byte[] dgBytes2 = agg.serialize();
+
+ assertEquals(dgBytes1.length, dgBytes2.length, "different size of raw data ande aggregate.serialize()");
+ assertArrayEquals(dgBytes1, dgBytes2, "raw drawing data (" + dgBytes1.length + " bytes) and aggregate.serialize() are different.");
}
}
- wb2.close();
- }
- }
- /**
- * test that we correctly read and write drawing aggregates
- * in all .xls files in POI test samples
- */
- @Test
- public void testAllTestSamples() throws IOException {
- File[] xls = new File(System.getProperty("POI.testdata.path"), "spreadsheet").listFiles(
- (dir, name) -> name.endsWith(".xls")
- );
- assertNotNull(
- "Need to find files in test-data path, had path: " + new File(System.getProperty("POI.testdata.path"), "spreadsheet"),
- xls);
- for(File file : xls) {
- HSSFWorkbook wb;
- try {
- wb = HSSFTestDataSamples.openSampleWorkbook(file.getName());
- } catch (Throwable e){
- // don't bother about files we cannot read - they are different bugs
- // System.out.println("[WARN] Cannot read " + file.getName());
- continue;
+ if(aggs.size() != 0){
+ try (HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb)) {
+ for (int i = 0; i < wb2.getNumberOfSheets(); i++) {
+ DrawingAggregateInfo info1 = aggs.get(i);
+ if (info1 != null) {
+ HSSFSheet sheet2 = wb2.getSheetAt(i);
+ DrawingAggregateInfo info2 = DrawingAggregateInfo.get(sheet2);
+ byte[] dgBytes1 = info1.getRawBytes();
+ byte[] dgBytes2 = info2.getRawBytes();
+ assertEquals(dgBytes1.length, dgBytes2.length, "different size of drawing data before and after save");
+ assertArrayEquals(dgBytes1, dgBytes2, "drawing data (" + dgBytes1.length + " bytes) before and after save is different.");
+ }
+ }
+ }
}
- try {
- assertWriteAndReadBack(wb);
- } catch (Exception e) {
- String filename = file.getName();
- System.out.println("Drawing Aggregate re-write test failed for " + filename);
- e.printStackTrace(System.out);
- fail("Error when writing and re-reading workbook " + filename + "\n" + e);
+ } catch (Throwable e) {
+ // don't bother about files we cannot read - they are different bugs
+ if (!ignoreParse) {
+ throw e;
}
- wb.close();
}
}
@@ -223,7 +213,7 @@ public class TestDrawingAggregate {
records.add(r);
pos += bytesRead;
}
- assertEquals("data was not fully read", dgBytes.length, pos);
+ assertEquals(dgBytes.length, pos, "data was not fully read");
// serialize to byte array
ByteArrayOutputStream out = new ByteArrayOutputStream();
@@ -292,8 +282,8 @@ public class TestDrawingAggregate {
agg = (EscherAggregate) ish.findFirstRecordBySid(EscherAggregate.sid);
assertNotNull(agg);
byte[] dgBytesAfterSave = agg.serialize();
- assertEquals("different size of drawing data before and after save", dgBytes.length, dgBytesAfterSave.length);
- assertArrayEquals("drawing data before and after save is different", dgBytes, dgBytesAfterSave);
+ assertEquals(dgBytes.length, dgBytesAfterSave.length, "different size of drawing data before and after save");
+ assertArrayEquals(dgBytes, dgBytesAfterSave, "drawing data before and after save is different");
}
}
}
@@ -313,8 +303,8 @@ public class TestDrawingAggregate {
EscherAggregate agg = (EscherAggregate) ish.findFirstRecordBySid(EscherAggregate.sid);
assertNotNull(agg);
byte[] dgBytesAfterSave = agg.serialize();
- assertEquals("different size of drawing data before and after save", dgBytes.length, dgBytesAfterSave.length);
- assertArrayEquals("drawing data before and after save is different", dgBytes, dgBytesAfterSave);
+ assertEquals(dgBytes.length, dgBytesAfterSave.length, "different size of drawing data before and after save");
+ assertArrayEquals(dgBytes, dgBytesAfterSave, "drawing data before and after save is different");
}
}
@@ -333,13 +323,13 @@ public class TestDrawingAggregate {
EscherAggregate agg = (EscherAggregate) ish.findFirstRecordBySid(EscherAggregate.sid);
assertNotNull(agg);
byte[] dgBytesAfterSave = agg.serialize();
- assertEquals("different size of drawing data before and after save", dgBytes.length, dgBytesAfterSave.length);
+ assertEquals(dgBytes.length, dgBytesAfterSave.length, "different size of drawing data before and after save");
for (int i = 0; i < dgBytes.length; i++) {
if (dgBytes[i] != dgBytesAfterSave[i]) {
System.out.println("pos = " + i);
}
}
- assertArrayEquals("drawing data before and after save is different", dgBytes, dgBytesAfterSave);
+ assertArrayEquals(dgBytes, dgBytesAfterSave, "drawing data before and after save is different");
}
}
@@ -357,11 +347,10 @@ public class TestDrawingAggregate {
List<RecordBase> records = isheet.getRecords();
// the sheet's drawing is not aggregated
- assertEquals("wrong size of sheet records stream", 394, records.size());
+ assertEquals(394, records.size(), "wrong size of sheet records stream");
// the last record before the drawing block
- assertTrue(
- "records.get(18) is expected to be RowRecordsAggregate but was " + records.get(18).getClass().getSimpleName(),
- records.get(18) instanceof RowRecordsAggregate);
+ assertTrue(records.get(18) instanceof RowRecordsAggregate,
+ "records.get(18) is expected to be RowRecordsAggregate but was " + records.get(18).getClass().getSimpleName());
// records to be aggregated
List<RecordBase> dgRecords = records.subList(19, 389);
@@ -381,9 +370,7 @@ public class TestDrawingAggregate {
}
// the first record after the drawing block
- assertTrue(
- "records.get(389) is expected to be Window2",
- records.get(389) instanceof WindowTwoRecord);
+ assertTrue(records.get(389) instanceof WindowTwoRecord, "records.get(389) is expected to be Window2");
// aggregate drawing records.
// The subrange [19, 388] is expected to be replaced with a EscherAggregate object
@@ -391,18 +378,17 @@ public class TestDrawingAggregate {
int loc = isheet.aggregateDrawingRecords(drawingManager, false);
EscherAggregate agg = (EscherAggregate) records.get(loc);
- assertEquals("wrong size of the aggregated sheet records stream", 25, records.size());
- assertTrue(
- "records.get(18) is expected to be RowRecordsAggregate but was " + records.get(18).getClass().getSimpleName(),
- records.get(18) instanceof RowRecordsAggregate);
- assertTrue("records.get(19) is expected to be EscherAggregate but was " + records.get(19).getClass().getSimpleName(),
- records.get(19) instanceof EscherAggregate);
- assertTrue("records.get(20) is expected to be Window2 but was " + records.get(20).getClass().getSimpleName(),
- records.get(20) instanceof WindowTwoRecord);
+ assertEquals(25, records.size(), "wrong size of the aggregated sheet records stream");
+ assertTrue(records.get(18) instanceof RowRecordsAggregate,
+ "records.get(18) is expected to be RowRecordsAggregate but was " + records.get(18).getClass().getSimpleName());
+ assertTrue(records.get(19) instanceof EscherAggregate,
+ "records.get(19) is expected to be EscherAggregate but was " + records.get(19).getClass().getSimpleName());
+ assertTrue(records.get(20) instanceof WindowTwoRecord,
+ "records.get(20) is expected to be Window2 but was " + records.get(20).getClass().getSimpleName());
byte[] dgBytesAfterSave = agg.serialize();
- assertEquals("different size of drawing data before and after save", dgBytes.length, dgBytesAfterSave.length);
- assertArrayEquals("drawing data before and after save is different", dgBytes, dgBytesAfterSave);
+ assertEquals(dgBytes.length, dgBytesAfterSave.length, "different size of drawing data before and after save");
+ assertArrayEquals(dgBytes, dgBytesAfterSave, "drawing data before and after save is different");
}
}
@@ -425,11 +411,10 @@ public class TestDrawingAggregate {
List<RecordBase> records = isheet.getRecords();
// the sheet's drawing is not aggregated
- assertEquals("wrong size of sheet records stream", 32, records.size());
+ assertEquals(32, records.size(), "wrong size of sheet records stream");
// the last record before the drawing block
- assertTrue(
- "records.get(18) is expected to be RowRecordsAggregate but was " + records.get(18).getClass().getSimpleName(),
- records.get(18) instanceof RowRecordsAggregate);
+ assertTrue(records.get(18) instanceof RowRecordsAggregate,
+ "records.get(18) is expected to be RowRecordsAggregate but was " + records.get(18).getClass().getSimpleName());
// records to be aggregated
List<RecordBase> dgRecords = records.subList(19, 26);
@@ -449,9 +434,7 @@ public class TestDrawingAggregate {
byte[] dgBytes = toByteArray(dgRecords);
// the first record after the drawing block
- assertTrue(
- "records.get(26) is expected to be Window2",
- records.get(26) instanceof WindowTwoRecord);
+ assertTrue(records.get(26) instanceof WindowTwoRecord, "records.get(26) is expected to be Window2");
// aggregate drawing records.
// The subrange [19, 38] is expected to be replaced with a EscherAggregate object
@@ -459,18 +442,17 @@ public class TestDrawingAggregate {
int loc = isheet.aggregateDrawingRecords(drawingManager, false);
EscherAggregate agg = (EscherAggregate) records.get(loc);
- assertEquals("wrong size of the aggregated sheet records stream", 26, records.size());
- assertTrue(
- "records.get(18) is expected to be RowRecordsAggregate but was " + records.get(18).getClass().getSimpleName(),
- records.get(18) instanceof RowRecordsAggregate);
- assertTrue("records.get(19) is expected to be EscherAggregate but was " + records.get(19).getClass().getSimpleName(),
- records.get(19) instanceof EscherAggregate);
- assertTrue("records.get(20) is expected to be Window2 but was " + records.get(20).getClass().getSimpleName(),
- records.get(20) instanceof WindowTwoRecord);
+ assertEquals(26, records.size(), "wrong size of the aggregated sheet records stream");
+ assertTrue(records.get(18) instanceof RowRecordsAggregate,
+ "records.get(18) is expected to be RowRecordsAggregate but was " + records.get(18).getClass().getSimpleName());
+ assertTrue(records.get(19) instanceof EscherAggregate,
+ "records.get(19) is expected to be EscherAggregate but was " + records.get(19).getClass().getSimpleName());
+ assertTrue(records.get(20) instanceof WindowTwoRecord,
+ "records.get(20) is expected to be Window2 but was " + records.get(20).getClass().getSimpleName());
byte[] dgBytesAfterSave = agg.serialize();
- assertEquals("different size of drawing data before and after save", dgBytes.length, dgBytesAfterSave.length);
- assertArrayEquals("drawing data before and after save is different", dgBytes, dgBytesAfterSave);
+ assertEquals(dgBytes.length, dgBytesAfterSave.length, "different size of drawing data before and after save");
+ assertArrayEquals(dgBytes, dgBytesAfterSave, "drawing data before and after save is different");
}
}
@@ -510,11 +492,10 @@ public class TestDrawingAggregate {
List<RecordBase> records = isheet.getRecords();
// the sheet's drawing is not aggregated
- assertEquals("wrong size of sheet records stream", 46, records.size());
+ assertEquals(46, records.size(), "wrong size of sheet records stream");
// the last record before the drawing block
- assertTrue(
- "records.get(18) is expected to be RowRecordsAggregate but was " + records.get(18).getClass().getSimpleName(),
- records.get(18) instanceof RowRecordsAggregate);
+ assertTrue(records.get(18) instanceof RowRecordsAggregate,
+ "records.get(18) is expected to be RowRecordsAggregate but was " + records.get(18).getClass().getSimpleName());
// records to be aggregated
List<RecordBase> dgRecords = records.subList(19, 39);
@@ -534,9 +515,7 @@ public class TestDrawingAggregate {
byte[] dgBytes = toByteArray(dgRecords);
// the first record after the drawing block
- assertTrue(
- "records.get(39) is expected to be Window2",
- records.get(39) instanceof WindowTwoRecord);
+ assertTrue(records.get(39) instanceof WindowTwoRecord, "records.get(39) is expected to be Window2");
// aggregate drawing records.
// The subrange [19, 38] is expected to be replaced with a EscherAggregate object
@@ -544,18 +523,17 @@ public class TestDrawingAggregate {
int loc = isheet.aggregateDrawingRecords(drawingManager, false);
EscherAggregate agg = (EscherAggregate) records.get(loc);
- assertEquals("wrong size of the aggregated sheet records stream", 27, records.size());
- assertTrue(
- "records.get(18) is expected to be RowRecordsAggregate but was " + records.get(18).getClass().getSimpleName(),
- records.get(18) instanceof RowRecordsAggregate);
- assertTrue("records.get(19) is expected to be EscherAggregate but was " + records.get(19).getClass().getSimpleName(),
- records.get(19) instanceof EscherAggregate);
- assertTrue("records.get(20) is expected to be Window2 but was " + records.get(20).getClass().getSimpleName(),
- records.get(20) instanceof WindowTwoRecord);
+ assertEquals(27, records.size(), "wrong size of the aggregated sheet records stream");
+ assertTrue(records.get(18) instanceof RowRecordsAggregate,
+ "records.get(18) is expected to be RowRecordsAggregate but was " + records.get(18).getClass().getSimpleName());
+ assertTrue(records.get(19) instanceof EscherAggregate,
+ "records.get(19) is expected to be EscherAggregate but was " + records.get(19).getClass().getSimpleName());
+ assertTrue(records.get(20) instanceof WindowTwoRecord,
+ "records.get(20) is expected to be Window2 but was " + records.get(20).getClass().getSimpleName());
byte[] dgBytesAfterSave = agg.serialize();
- assertEquals("different size of drawing data before and after save", dgBytes.length, dgBytesAfterSave.length);
- assertArrayEquals("drawing data before and after save is different", dgBytes, dgBytesAfterSave);
+ assertEquals(dgBytes.length, dgBytesAfterSave.length, "different size of drawing data before and after save");
+ assertArrayEquals(dgBytes, dgBytesAfterSave, "drawing data before and after save is different");
}
}
@@ -571,11 +549,10 @@ public class TestDrawingAggregate {
List<RecordBase> records = isheet.getRecords();
// the sheet's drawing is not aggregated
- assertEquals("wrong size of sheet records stream", 315, records.size());
+ assertEquals(315, records.size(), "wrong size of sheet records stream");
// the last record before the drawing block
- assertTrue(
- "records.get(21) is expected to be RowRecordsAggregate but was " + records.get(21).getClass().getSimpleName(),
- records.get(21) instanceof RowRecordsAggregate);
+ assertTrue(records.get(21) instanceof RowRecordsAggregate,
+ "records.get(21) is expected to be RowRecordsAggregate but was " + records.get(21).getClass().getSimpleName());
// records to be aggregated
List<RecordBase> dgRecords = records.subList(22, 300);
@@ -594,9 +571,7 @@ public class TestDrawingAggregate {
byte[] dgBytes = toByteArray(dgRecords);
// the first record after the drawing block
- assertTrue(
- "records.get(300) is expected to be Window2",
- records.get(300) instanceof WindowTwoRecord);
+ assertTrue(records.get(300) instanceof WindowTwoRecord, "records.get(300) is expected to be Window2");
// aggregate drawing records.
// The subrange [19, 299] is expected to be replaced with a EscherAggregate object
@@ -604,18 +579,17 @@ public class TestDrawingAggregate {
int loc = isheet.aggregateDrawingRecords(drawingManager, false);
EscherAggregate agg = (EscherAggregate) records.get(loc);
- assertEquals("wrong size of the aggregated sheet records stream", 38, records.size());
- assertTrue(
- "records.get(21) is expected to be RowRecordsAggregate but was " + records.get(21).getClass().getSimpleName(),
- records.get(21) instanceof RowRecordsAggregate);
- assertTrue("records.get(22) is expected to be EscherAggregate but was " + records.get(22).getClass().getSimpleName(),
- records.get(22) instanceof EscherAggregate);
- assertTrue("records.get(23) is expected to be Window2 but was " + records.get(23).getClass().getSimpleName(),
- records.get(23) instanceof WindowTwoRecord);
+ assertEquals(38, records.size(), "wrong size of the aggregated sheet records stream");
+ assertTrue(records.get(21) instanceof RowRecordsAggregate,
+ "records.get(21) is expected to be RowRecordsAggregate but was " + records.get(21).getClass().getSimpleName());
+ assertTrue(records.get(22) instanceof EscherAggregate,
+ "records.get(22) is expected to be EscherAggregate but was " + records.get(22).getClass().getSimpleName());
+ assertTrue(records.get(23) instanceof WindowTwoRecord,
+ "records.get(23) is expected to be Window2 but was " + records.get(23).getClass().getSimpleName());
byte[] dgBytesAfterSave = agg.serialize();
- assertEquals("different size of drawing data before and after save", dgBytes.length, dgBytesAfterSave.length);
- assertArrayEquals("drawing data before and after save is different", dgBytes, dgBytesAfterSave);
+ assertEquals(dgBytes.length, dgBytesAfterSave.length, "different size of drawing data before and after save");
+ assertArrayEquals(dgBytes, dgBytesAfterSave, "drawing data before and after save is different");
}
}
@@ -739,7 +713,7 @@ public class TestDrawingAggregate {
};
int[] actualSids = dgRecords.stream().mapToInt(Record::getSid).toArray();
- assertArrayEquals("unexpected record.sid", expectedSids, actualSids);
+ assertArrayEquals(expectedSids, actualSids, "unexpected record.sid");
DrawingManager2 drawingManager = new DrawingManager2(new EscherDggRecord());
@@ -752,14 +726,14 @@ public class TestDrawingAggregate {
sheet.aggregateDrawingRecords(drawingManager, false);
- assertEquals("drawing was not fully aggregated", 2, records.size());
- assertTrue("expected EscherAggregate", records.get(0) instanceof EscherAggregate);
- assertTrue("expected EOFRecord", records.get(1) instanceof EOFRecord);
+ assertEquals(2, records.size(), "drawing was not fully aggregated");
+ assertTrue(records.get(0) instanceof EscherAggregate, "expected EscherAggregate");
+ assertTrue(records.get(1) instanceof EOFRecord, "expected EOFRecord");
EscherAggregate agg = (EscherAggregate) records.get(0);
byte[] dgBytesAfterSave = agg.serialize();
- assertEquals("different size of drawing data before and after save", dgBytes.length, dgBytesAfterSave.length);
- assertArrayEquals("drawing data before and after save is different", dgBytes, dgBytesAfterSave);
+ assertEquals(dgBytes.length, dgBytesAfterSave.length, "different size of drawing data before and after save");
+ assertArrayEquals(dgBytes, dgBytesAfterSave, "drawing data before and after save is different");
}
@Test
@@ -905,7 +879,7 @@ public class TestDrawingAggregate {
};
int[] actualSids = dgRecords.stream().mapToInt(Record::getSid).toArray();
- assertArrayEquals("unexpected record.sid", expectedSids, actualSids);
+ assertArrayEquals(expectedSids, actualSids, "unexpected record.sid");
DrawingManager2 drawingManager = new DrawingManager2(new EscherDggRecord());
@@ -917,14 +891,14 @@ public class TestDrawingAggregate {
records.add(EOFRecord.instance);
sheet.aggregateDrawingRecords(drawingManager, false);
- assertEquals("drawing was not fully aggregated", 2, records.size());
- assertTrue("expected EscherAggregate", records.get(0) instanceof EscherAggregate);
- assertTrue("expected EOFRecord", records.get(1) instanceof EOFRecord);
+ assertEquals(2, records.size(), "drawing was not fully aggregated");
+ assertTrue(records.get(0) instanceof EscherAggregate, "expected EscherAggregate");
+ assertTrue(records.get(1) instanceof EOFRecord, "expected EOFRecord");
EscherAggregate agg = (EscherAggregate) records.get(0);
byte[] dgBytesAfterSave = agg.serialize();
- assertEquals("different size of drawing data before and after save", dgBytes.length, dgBytesAfterSave.length);
- assertArrayEquals("drawing data brefpore and after save is different", dgBytes, dgBytesAfterSave);
+ assertEquals(dgBytes.length, dgBytesAfterSave.length, "different size of drawing data before and after save");
+ assertArrayEquals(dgBytes, dgBytesAfterSave, "drawing data brefpore and after save is different");
}
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingManager2.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingManager2.java?rev=1884783&r1=1884782&r2=1884783&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingManager2.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingManager2.java Thu Dec 24 18:42:29 2020
@@ -17,18 +17,18 @@
package org.apache.poi.hssf.model;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import org.apache.poi.ddf.EscherDgRecord;
import org.apache.poi.ddf.EscherDggRecord;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
public final class TestDrawingManager2 {
private DrawingManager2 drawingManager2;
private EscherDggRecord dgg;
- @Before
+ @BeforeEach
public void setUp() {
dgg = new EscherDggRecord();
dgg.setFileIdClusters( new EscherDggRecord.FileIdCluster[0] );
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingShapes.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingShapes.java?rev=1884783&r1=1884782&r2=1884783&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingShapes.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/model/TestDrawingShapes.java Thu Dec 24 18:42:29 2020
@@ -17,13 +17,13 @@
package org.apache.poi.hssf.model;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.IOException;
import java.util.List;
@@ -60,12 +60,12 @@ import org.apache.poi.hssf.usermodel.HSS
import org.apache.poi.ss.usermodel.ClientAnchor.AnchorType;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.util.HexDump;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
/**
* Test escher drawing
- *
+ *
* optionally the system setting "poi.deserialize.escher" can be set to {@code true}
*/
public class TestDrawingShapes {
@@ -107,7 +107,7 @@ public class TestDrawingShapes {
assertEquals(HSSFShape.LINEWIDTH_DEFAULT, shape.getLineWidth());
assertEquals(HSSFShape.LINESTYLE_SOLID, shape.getLineStyle());
assertFalse(shape.isNoFill());
-
+
EscherOptRecord opt = shape.getOptRecord();
assertEquals(7, opt.getEscherProperties().size());
@@ -284,7 +284,7 @@ public class TestDrawingShapes {
assertFalse(shape.isNoFill());
assertEquals(shape.getLineStyle(), HSSFShape.LINESTYLE_DASHDOTGEL);
assertEquals(shape.getLineStyleColor(), 0x616161);
- assertEquals(HexDump.toHex(shape.getFillColor()), shape.getFillColor(), 0x2CE03D);
+ assertEquals(shape.getFillColor(), 0x2CE03D, HexDump.toHex(shape.getFillColor()));
assertEquals(shape.getLineWidth(), HSSFShape.LINEWIDTH_ONE_PT * 2);
assertEquals(shape.getString().getString(), "POItest");
assertEquals(shape.getRotationDegree(), 27);
@@ -307,8 +307,8 @@ public class TestDrawingShapes {
EscherAggregate agg1 = HSSFTestHelper.getEscherAggregate(patriarch1);
// last shape ID cached in EscherDgRecord
- EscherDgRecord dg1 =
- agg1.getEscherContainer().getChildById(EscherDgRecord.RECORD_ID);
+ EscherDgRecord dg1 = agg1.getEscherContainer().getChildById(EscherDgRecord.RECORD_ID);
+ assertNotNull(dg1);
assertEquals(1026, dg1.getLastMSOSPID());
// iterate over shapes and check shapeId
@@ -319,14 +319,17 @@ public class TestDrawingShapes {
EscherSpRecord sp0 =
((EscherContainerRecord) spgrContainer.getChild(0)).getChildById(EscherSpRecord.RECORD_ID);
+ assertNotNull(sp0);
assertEquals(1024, sp0.getShapeId());
EscherSpRecord sp1 =
((EscherContainerRecord) spgrContainer.getChild(1)).getChildById(EscherSpRecord.RECORD_ID);
+ assertNotNull(sp1);
assertEquals(1025, sp1.getShapeId());
EscherSpRecord sp2 =
((EscherContainerRecord) spgrContainer.getChild(2)).getChildById(EscherSpRecord.RECORD_ID);
+ assertNotNull(sp2);
assertEquals(1026, sp2.getShapeId());
wb2.close();
}
@@ -380,22 +383,23 @@ public class TestDrawingShapes {
assertSame(opt1, opt2);
wb.close();
}
-
+
@Test
public void testCorrectOrderInOptRecord() throws IOException{
HSSFWorkbook wb = new HSSFWorkbook();
-
+
HSSFSheet sheet = wb.createSheet();
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
HSSFTextbox textbox = patriarch.createTextbox(new HSSFClientAnchor());
EscherOptRecord opt = HSSFTestHelper.getOptRecord(textbox);
-
+
String opt1Str = opt.toXml();
textbox.setFillColor(textbox.getFillColor());
EscherContainerRecord container = HSSFTestHelper.getEscherContainer(textbox);
EscherOptRecord optRecord = container.getChildById(EscherOptRecord.RECORD_ID);
+ assertNotNull(optRecord);
assertEquals(opt1Str, optRecord.toXml());
textbox.setLineStyle(textbox.getLineStyle());
assertEquals(opt1Str, optRecord.toXml());
@@ -689,7 +693,7 @@ public class TestDrawingShapes {
@Test
public void testShapeContainerImplementsIterable() throws IOException {
HSSFWorkbook wb = new HSSFWorkbook();
-
+
HSSFSheet sheet = wb.createSheet();
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
@@ -737,13 +741,13 @@ public class TestDrawingShapes {
assertEquals(patriarch.getChildren().size(), 0);
wb2.close();
}
-
+
@Test
public void testBug45312() throws Exception {
try (HSSFWorkbook wb = new HSSFWorkbook()) {
HSSFSheet sheet = wb.createSheet();
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
-
+
{
HSSFClientAnchor a1 = new HSSFClientAnchor();
a1.setAnchor( (short)1, 1, 0, 0, (short) 1, 1, 512, 100);
@@ -771,7 +775,7 @@ public class TestDrawingShapes {
shape1.setFlipHorizontal(true);
shape1.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);
}
-
+
checkWorkbookBack(wb);
}
}
@@ -779,13 +783,13 @@ public class TestDrawingShapes {
private void checkWorkbookBack(HSSFWorkbook wb) throws IOException {
HSSFWorkbook wbBack = HSSFTestDataSamples.writeOutAndReadBack(wb);
assertNotNull(wbBack);
-
+
HSSFSheet sheetBack = wbBack.getSheetAt(0);
assertNotNull(sheetBack);
-
+
HSSFPatriarch patriarchBack = sheetBack.getDrawingPatriarch();
assertNotNull(patriarchBack);
-
+
List<HSSFShape> children = patriarchBack.getChildren();
assertEquals(4, children.size());
HSSFShape hssfShape = children.get(0);
@@ -843,7 +847,7 @@ public class TestDrawingShapes {
assertEquals(2, cAnchor.getCol2());
assertEquals(2, cAnchor.getRow1());
assertEquals(2, cAnchor.getRow2());
-
+
wbBack.close();
}
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/model/TestEscherRecordFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/model/TestEscherRecordFactory.java?rev=1884783&r1=1884782&r2=1884783&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/model/TestEscherRecordFactory.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/model/TestEscherRecordFactory.java Thu Dec 24 18:42:29 2020
@@ -17,17 +17,18 @@
package org.apache.poi.hssf.model;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.apache.poi.ddf.DefaultEscherRecordFactory.isContainer;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.List;
import java.util.Random;
-import org.apache.poi.ddf.DefaultEscherRecordFactory;
import org.apache.poi.ddf.EscherContainerRecord;
import org.apache.poi.ddf.EscherTextboxRecord;
import org.apache.poi.hssf.HSSFTestDataSamples;
@@ -37,7 +38,7 @@ import org.apache.poi.hssf.record.Record
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFTestHelper;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
public class TestEscherRecordFactory {
@@ -57,30 +58,30 @@ public class TestEscherRecordFactory {
@Test
public void testDetectContainer() {
Random rnd = new Random();
- assertTrue(DefaultEscherRecordFactory.isContainer((short) 0x0, EscherContainerRecord.DG_CONTAINER));
- assertTrue(DefaultEscherRecordFactory.isContainer((short) 0x0, EscherContainerRecord.SOLVER_CONTAINER));
- assertTrue(DefaultEscherRecordFactory.isContainer((short) 0x0, EscherContainerRecord.SP_CONTAINER));
- assertTrue(DefaultEscherRecordFactory.isContainer((short) 0x0, EscherContainerRecord.DGG_CONTAINER));
- assertTrue(DefaultEscherRecordFactory.isContainer((short) 0x0, EscherContainerRecord.BSTORE_CONTAINER));
- assertTrue(DefaultEscherRecordFactory.isContainer((short) 0x0, EscherContainerRecord.SPGR_CONTAINER));
+ assertTrue(isContainer((short) 0x0, EscherContainerRecord.DG_CONTAINER));
+ assertTrue(isContainer((short) 0x0, EscherContainerRecord.SOLVER_CONTAINER));
+ assertTrue(isContainer((short) 0x0, EscherContainerRecord.SP_CONTAINER));
+ assertTrue(isContainer((short) 0x0, EscherContainerRecord.DGG_CONTAINER));
+ assertTrue(isContainer((short) 0x0, EscherContainerRecord.BSTORE_CONTAINER));
+ assertTrue(isContainer((short) 0x0, EscherContainerRecord.SPGR_CONTAINER));
- for (Short i=EscherContainerRecord.DGG_CONTAINER; i<= EscherContainerRecord.SOLVER_CONTAINER; i++){
- assertTrue(DefaultEscherRecordFactory.isContainer(Integer.valueOf(rnd.nextInt(Short.MAX_VALUE)).shortValue(), i));
+ for (short i=EscherContainerRecord.DGG_CONTAINER; i<= EscherContainerRecord.SOLVER_CONTAINER; i++){
+ assertTrue(isContainer(Integer.valueOf(rnd.nextInt(Short.MAX_VALUE)).shortValue(), i));
}
- assertFalse(DefaultEscherRecordFactory.isContainer((short) 0x0, Integer.valueOf(EscherContainerRecord.DGG_CONTAINER - 1).shortValue()));
- assertFalse(DefaultEscherRecordFactory.isContainer((short) 0x0, Integer.valueOf(EscherContainerRecord.SOLVER_CONTAINER + 1).shortValue()));
+ assertFalse(isContainer((short) 0x0, Integer.valueOf(EscherContainerRecord.DGG_CONTAINER - 1).shortValue()));
+ assertFalse(isContainer((short) 0x0, Integer.valueOf(EscherContainerRecord.SOLVER_CONTAINER + 1).shortValue()));
- assertTrue(DefaultEscherRecordFactory.isContainer((short) 0x000F, Integer.valueOf(EscherContainerRecord.DGG_CONTAINER - 1).shortValue()));
- assertTrue(DefaultEscherRecordFactory.isContainer((short) 0xFFFF, Integer.valueOf(EscherContainerRecord.DGG_CONTAINER - 1).shortValue()));
- assertFalse(DefaultEscherRecordFactory.isContainer((short) 0x000C, Integer.valueOf(EscherContainerRecord.DGG_CONTAINER - 1).shortValue()));
- assertFalse(DefaultEscherRecordFactory.isContainer((short) 0xCCCC, Integer.valueOf(EscherContainerRecord.DGG_CONTAINER - 1).shortValue()));
- assertFalse(DefaultEscherRecordFactory.isContainer((short) 0x000F, EscherTextboxRecord.RECORD_ID));
- assertFalse(DefaultEscherRecordFactory.isContainer((short) 0xCCCC, EscherTextboxRecord.RECORD_ID));
+ assertTrue(isContainer((short) 0x000F, Integer.valueOf(EscherContainerRecord.DGG_CONTAINER - 1).shortValue()));
+ assertTrue(isContainer((short) 0xFFFF, Integer.valueOf(EscherContainerRecord.DGG_CONTAINER - 1).shortValue()));
+ assertFalse(isContainer((short) 0x000C, Integer.valueOf(EscherContainerRecord.DGG_CONTAINER - 1).shortValue()));
+ assertFalse(isContainer((short) 0xCCCC, Integer.valueOf(EscherContainerRecord.DGG_CONTAINER - 1).shortValue()));
+ assertFalse(isContainer((short) 0x000F, EscherTextboxRecord.RECORD_ID));
+ assertFalse(isContainer((short) 0xCCCC, EscherTextboxRecord.RECORD_ID));
}
@Test
- public void testDgContainerMustBeRootOfHSSFSheetEscherRecords() throws IOException {
+ public void testDgContainerMustBeRootOfHSSFSheetEscherRecords() {
HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("47251.xls");
HSSFSheet sh = wb.getSheetAt(0);
InternalSheet ish = HSSFTestHelper.getSheetForTest(sh);
@@ -90,12 +91,14 @@ public class TestEscherRecordFactory {
byte[] dgBytes = toByteArray(dgRecords);
sh.getDrawingPatriarch();
EscherAggregate agg = (EscherAggregate) ish.findFirstRecordBySid(EscherAggregate.sid);
+ assertNotNull(agg);
assertTrue(agg.getEscherRecords().get(0) instanceof EscherContainerRecord);
assertEquals(EscherContainerRecord.DG_CONTAINER, agg.getEscherRecords().get(0).getRecordId());
assertEquals((short) 0x0, agg.getEscherRecords().get(0).getOptions());
agg = (EscherAggregate) ish.findFirstRecordBySid(EscherAggregate.sid);
+ assertNotNull(agg);
byte[] dgBytesAfterSave = agg.serialize();
- assertEquals("different size of drawing data before and after save", dgBytes.length, dgBytesAfterSave.length);
- assertArrayEquals("drawing data before and after save is different", dgBytes, dgBytesAfterSave);
+ assertEquals(dgBytes.length, dgBytesAfterSave.length, "different size of drawing data before and after save");
+ assertArrayEquals(dgBytes, dgBytesAfterSave, "drawing data before and after save is different");
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org