Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java Thu Dec 24 18:42:29 2020 @@ -16,12 +16,11 @@ ==================================================================== */ package org.apache.poi.xssf.streaming; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.junit.Assume.assumeFalse; -import static org.junit.Assume.assumeTrue; +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 static org.junit.jupiter.api.Assumptions.assumeFalse; +import static org.junit.jupiter.api.Assumptions.assumeTrue; import java.io.IOException; import java.util.Collections; @@ -36,20 +35,19 @@ import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.SheetUtil; -import org.junit.After; -import org.junit.Assume; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** * Tests the auto-sizing behaviour of {@link SXSSFSheet} when not all * rows fit into the memory window size etc. - * + * * see Bug #57450 which reported the original misbehaviour */ public class TestAutoSizeColumnTracker { - + private SXSSFSheet sheet; private SXSSFWorkbook workbook; private AutoSizeColumnTracker tracker; @@ -63,15 +61,15 @@ public class TestAutoSizeColumnTracker { } private final static String SHORT_MESSAGE = "short"; private final static String LONG_MESSAGE = "This is a test of a long message! This is a test of a long message!"; - - @Before + + @BeforeEach public void setUpSheetAndWorkbook() { workbook = new SXSSFWorkbook(); sheet = workbook.createSheet(); tracker = new AutoSizeColumnTracker(sheet); } - - @After + + @AfterEach public void tearDownSheetAndWorkbook() throws IOException { if (sheet != null) { sheet.dispose(); @@ -80,7 +78,7 @@ public class TestAutoSizeColumnTracker { workbook.close(); } } - + @Test public void trackAndUntrackColumn() { assumeTrue(tracker.getTrackedColumns().isEmpty()); @@ -91,7 +89,7 @@ public class TestAutoSizeColumnTracker { tracker.untrackColumn(0); assertTrue(tracker.getTrackedColumns().isEmpty()); } - + @Test public void trackAndUntrackColumns() { assumeTrue(tracker.getTrackedColumns().isEmpty()); @@ -108,14 +106,14 @@ public class TestAutoSizeColumnTracker { tracker.untrackColumns(columns); assertTrue(tracker.getTrackedColumns().isEmpty()); } - + @Test public void trackAndUntrackAllColumns() { createColumnsAndTrackThemAll(); tracker.untrackAllColumns(); assertTrue(tracker.getTrackedColumns().isEmpty()); } - + @Test public void isColumnTracked() { assumeFalse(tracker.isColumnTracked(0)); @@ -140,7 +138,7 @@ public class TestAutoSizeColumnTracker { @Test public void getTrackedColumns() { assumeTrue(tracker.getTrackedColumns().isEmpty()); - + for (int column : columns) { tracker.trackColumn(column); } @@ -148,7 +146,7 @@ public class TestAutoSizeColumnTracker { assertEquals(3, tracker.getTrackedColumns().size()); assertEquals(columns, tracker.getTrackedColumns()); } - + @Test public void isAllColumnsTracked() { assertFalse(tracker.isAllColumnsTracked()); @@ -157,7 +155,7 @@ public class TestAutoSizeColumnTracker { tracker.untrackAllColumns(); assertFalse(tracker.isAllColumnsTracked()); } - + @Test public void updateColumnWidths_and_getBestFitColumnWidth() { tracker.trackAllColumns(); @@ -171,19 +169,19 @@ public class TestAutoSizeColumnTracker { tracker.updateColumnWidths(row1); tracker.updateColumnWidths(row2); assertEquals(0, sheet.addMergedRegion(CellRangeAddress.valueOf("D1:E1"))); - + assumeRequiredFontsAreInstalled(workbook, row1.getCell(columns.iterator().next())); - + // Excel 2013 and LibreOffice 4.2.8.2 both treat columns with merged regions as blank /* A B C D E * 1 LONG LONG LONGMERGE * 2 SHORT SHORT SHORT */ - + // measured in Excel 2013. Sizes may vary. final int longMsgWidth = (int) (57.43*256); final int shortMsgWidth = (int) (4.86*256); - + checkColumnWidth(longMsgWidth, 0, true); checkColumnWidth(longMsgWidth, 0, false); checkColumnWidth(longMsgWidth, 1, true); @@ -195,25 +193,20 @@ public class TestAutoSizeColumnTracker { checkColumnWidth(shortMsgWidth, 4, true); //but is it really? shouldn't autosizing column E use "" from E1 and SHORT from E2? checkColumnWidth(shortMsgWidth, 4, false); } - + private void checkColumnWidth(int expectedWidth, int column, boolean useMergedCells) { final int bestFitWidth = tracker.getBestFitColumnWidth(column, useMergedCells); if (bestFitWidth < 0 && expectedWidth < 0) return; final double abs_error = Math.abs(bestFitWidth-expectedWidth); final double rel_error = abs_error / expectedWidth; - if (rel_error > 0.25) { - fail("check column width: " + - rel_error + ", " + abs_error + ", " + - expectedWidth + ", " + bestFitWidth); - } - + assertTrue(rel_error <= 0.25, "check column width: " + rel_error + ", " + abs_error + ", " + expectedWidth + ", " + bestFitWidth); } - + private static void assumeRequiredFontsAreInstalled(final Workbook workbook, final Cell cell) { // autoSize will fail if required fonts are not installed, skip this test then Font font = workbook.getFontAt(cell.getCellStyle().getFontIndex()); - Assume.assumeTrue("Cannot verify autoSizeColumn() because the necessary Fonts are not installed on this machine: " + font, - SheetUtil.canComputeColumnWidth(font)); + assumeTrue(SheetUtil.canComputeColumnWidth(font), + "Cannot verify autoSizeColumn() because the necessary Fonts are not installed on this machine: " + font); } private void createColumnsAndTrackThemAll() {
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestDeferredSXSSFWorkbook.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestDeferredSXSSFWorkbook.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestDeferredSXSSFWorkbook.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestDeferredSXSSFWorkbook.java Thu Dec 24 18:42:29 2020 @@ -19,12 +19,12 @@ package org.apache.poi.xssf.streaming; -import static org.junit.Assert.assertEquals; -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.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.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; @@ -38,9 +38,9 @@ import org.apache.poi.xssf.usermodel.XSS import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.junit.After; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; public final class TestDeferredSXSSFWorkbook extends BaseTestXWorkbook { @@ -48,7 +48,7 @@ public final class TestDeferredSXSSFWork super(DeferredSXSSFITestDataProvider.instance); } - @After + @AfterEach public void tearDown() { ((DeferredSXSSFITestDataProvider) _testDataProvider).cleanup(); } @@ -59,12 +59,8 @@ public final class TestDeferredSXSSFWork @Override @Test public void cloneSheet() throws IOException { - try { - super.cloneSheet(); - fail("expected exception"); - } catch (RuntimeException e) { - assertEquals("Not Implemented", e.getMessage()); - } + RuntimeException e = assertThrows(RuntimeException.class, super::cloneSheet); + assertEquals("Not Implemented", e.getMessage()); } /** @@ -73,29 +69,25 @@ public final class TestDeferredSXSSFWork @Override @Test public void sheetClone() throws IOException { - try { - super.sheetClone(); - fail("expected exception"); - } catch (RuntimeException e) { - assertEquals("Not Implemented", e.getMessage()); - } + RuntimeException e = assertThrows(RuntimeException.class, super::sheetClone); + assertEquals("Not Implemented", e.getMessage()); } /** * Skip this test, as SXSSF doesn't update formulas on sheet name changes. */ @Override - @Ignore("SXSSF doesn't update formulas on sheet name changes, as most cells probably aren't in memory at the time") + @Disabled("SXSSF doesn't update formulas on sheet name changes, as most cells probably aren't in memory at the time") @Test public void setSheetName() {} @Override - @Ignore("DeferredSXSSF code disposes rows in a way that breaks this test") + @Disabled("DeferredSXSSF code disposes rows in a way that breaks this test") @Test public void parentReferences() {} @Override - @Ignore("DeferredSXSSF code disposes rows in a way that breaks this test") + @Disabled("DeferredSXSSF code disposes rows in a way that breaks this test") @Test public void unicodeInAll() {} @@ -248,7 +240,7 @@ public final class TestDeferredSXSSFWork assertEquals("sheet" + i, sh.getSheetName()); for (int j = 0; j < rowNum; j++) { Row row = sh.getRow(j); - assertNotNull("row[" + j + "]", row); + assertNotNull(row, "row[" + j + "]"); Cell cell1 = row.getCell(0); assertEquals(new CellReference(cell1).formatAsString(), cell1.getStringCellValue()); Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestOutlining.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestOutlining.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestOutlining.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestOutlining.java Thu Dec 24 18:42:29 2020 @@ -19,20 +19,19 @@ package org.apache.poi.xssf.streaming; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -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.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; -import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.junit.Test; +import org.junit.jupiter.api.Test; public final class TestOutlining { @Test @@ -58,7 +57,7 @@ public final class TestOutlining { r = sheet2.getRow(12); assertNull(r.getHidden()); wb2.dispose(); - + wb2.close(); } @@ -76,34 +75,18 @@ public final class TestOutlining { sheet2.groupRow(4, 9); sheet2.groupRow(11, 19); - try { - sheet2.setRowGroupCollapsed(3, true); - fail("Should fail with an exception"); - } catch (IllegalArgumentException e) { - assertTrue(e.getMessage().contains("row (3)")); - } + IllegalArgumentException e; + e = assertThrows(IllegalArgumentException.class, () -> sheet2.setRowGroupCollapsed(3, true)); + assertTrue(e.getMessage().contains("row (3)")); - try { - sheet2.setRowGroupCollapsed(10, true); - fail("Should fail with an exception"); - } catch (IllegalArgumentException e) { - assertTrue(e.getMessage().contains("row (10)")); - } + e = assertThrows(IllegalArgumentException.class, () -> sheet2.setRowGroupCollapsed(10, true)); + assertTrue(e.getMessage().contains("row (10)")); - try { - sheet2.setRowGroupCollapsed(0, true); - fail("Should fail with an exception"); - } catch (IllegalArgumentException e) { - assertTrue(e.getMessage().contains("row (0)")); - } + e = assertThrows(IllegalArgumentException.class, () -> sheet2.setRowGroupCollapsed(0, true)); + assertTrue(e.getMessage().contains("row (0)")); - try { - sheet2.setRowGroupCollapsed(20, true); - fail("Should fail with an exception"); - } catch (IllegalArgumentException e) { - assertTrue("Had: " + e.getMessage(), - e.getMessage().contains("Row does not exist")); - } + e = assertThrows(IllegalArgumentException.class, () -> sheet2.setRowGroupCollapsed(20, true)); + assertTrue(e.getMessage().contains("Row does not exist"), "Had: " + e.getMessage()); SXSSFRow r = sheet2.getRow(8); assertNotNull(r); @@ -113,10 +96,10 @@ public final class TestOutlining { r = sheet2.getRow(12); assertNull(r.getHidden()); wb2.dispose(); - + wb2.close(); } - + @Test public void testOutlineGettersHSSF() throws IOException { HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); @@ -136,7 +119,7 @@ public final class TestOutlining { assertEquals(0, hssfSheet.getRow(4).getOutlineLevel()); hssfWorkbook.close(); } - + @Test public void testOutlineGettersXSSF() throws IOException { XSSFWorkbook xssfWorkbook = new XSSFWorkbook(); @@ -156,18 +139,18 @@ public final class TestOutlining { assertEquals(0, xssfSheet.getRow(4).getOutlineLevel()); xssfWorkbook.close(); } - + @Test public void testOutlineGettersSXSSF() throws IOException { SXSSFWorkbook sxssfWorkbook = new SXSSFWorkbook(); - Sheet sxssfSheet = sxssfWorkbook.createSheet(); + SXSSFSheet sxssfSheet = sxssfWorkbook.createSheet(); sxssfSheet.createRow(0); sxssfSheet.createRow(1); sxssfSheet.createRow(2); sxssfSheet.createRow(3); sxssfSheet.createRow(4); sxssfSheet.createRow(5); - + // nothing happens with empty row-area sxssfSheet.groupRow(1, 0); assertEquals(0, sxssfSheet.getRow(0).getOutlineLevel()); @@ -176,7 +159,7 @@ public final class TestOutlining { assertEquals(0, sxssfSheet.getRow(3).getOutlineLevel()); assertEquals(0, sxssfSheet.getRow(4).getOutlineLevel()); assertEquals(0, sxssfSheet.getRow(5).getOutlineLevel()); - + sxssfSheet.groupRow(1, 3); sxssfSheet.groupRow(2, 3); @@ -186,33 +169,33 @@ public final class TestOutlining { assertEquals(2, sxssfSheet.getRow(3).getOutlineLevel()); assertEquals(0, sxssfSheet.getRow(4).getOutlineLevel()); assertEquals(0, sxssfSheet.getRow(5).getOutlineLevel()); - + // add tests for direct setting - add row 4 to deepest group - ((SXSSFSheet)sxssfSheet).setRowOutlineLevel(4, 2); + sxssfSheet.setRowOutlineLevel(4, 2); assertEquals(0, sxssfSheet.getRow(0).getOutlineLevel()); assertEquals(1, sxssfSheet.getRow(1).getOutlineLevel()); assertEquals(2, sxssfSheet.getRow(2).getOutlineLevel()); assertEquals(2, sxssfSheet.getRow(3).getOutlineLevel()); assertEquals(2, sxssfSheet.getRow(4).getOutlineLevel()); assertEquals(0, sxssfSheet.getRow(5).getOutlineLevel()); - + sxssfWorkbook.dispose(); sxssfWorkbook.close(); } - + @Test public void testOutlineGettersSXSSFSetOutlineLevel() throws IOException { SXSSFWorkbook sxssfWorkbook = new SXSSFWorkbook(); - Sheet sxssfSheet = sxssfWorkbook.createSheet(); + SXSSFSheet sxssfSheet = sxssfWorkbook.createSheet(); sxssfSheet.createRow(0); sxssfSheet.createRow(1); sxssfSheet.createRow(2); sxssfSheet.createRow(3); sxssfSheet.createRow(4); sxssfSheet.createRow(5); - + // what happens with level below 1 - ((SXSSFSheet)sxssfSheet).setRowOutlineLevel(0, -2); + sxssfSheet.setRowOutlineLevel(0, -2); assertEquals(-2, sxssfSheet.getRow(0).getOutlineLevel()); assertEquals(0, sxssfSheet.getRow(1).getOutlineLevel()); assertEquals(0, sxssfSheet.getRow(2).getOutlineLevel()); @@ -221,14 +204,14 @@ public final class TestOutlining { assertEquals(0, sxssfSheet.getRow(5).getOutlineLevel()); // add tests for direct setting - ((SXSSFSheet)sxssfSheet).setRowOutlineLevel(4, 2); + sxssfSheet.setRowOutlineLevel(4, 2); assertEquals(-2, sxssfSheet.getRow(0).getOutlineLevel()); assertEquals(0, sxssfSheet.getRow(1).getOutlineLevel()); assertEquals(0, sxssfSheet.getRow(2).getOutlineLevel()); assertEquals(0, sxssfSheet.getRow(3).getOutlineLevel()); assertEquals(2, sxssfSheet.getRow(4).getOutlineLevel()); assertEquals(0, sxssfSheet.getRow(5).getOutlineLevel()); - + sxssfWorkbook.dispose(); sxssfWorkbook.close(); } Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java Thu Dec 24 18:42:29 2020 @@ -19,10 +19,11 @@ package org.apache.poi.xssf.streaming; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +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.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.Mockito.spy; import java.io.IOException; @@ -42,9 +43,9 @@ import org.apache.poi.xssf.usermodel.XSS import org.apache.poi.xssf.usermodel.XSSFRichTextString; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.xmlbeans.XmlCursor; -import org.junit.AfterClass; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRst; /** @@ -57,7 +58,7 @@ public class TestSXSSFCell extends BaseT super(SXSSFITestDataProvider.instance); } - @AfterClass + @AfterAll public static void tearDownClass() { SXSSFITestDataProvider.instance.cleanup(); } @@ -87,26 +88,26 @@ public class TestSXSSFCell extends BaseT c.toNextToken(); String t = c.getAttributeText(new QName("http://www.w3.org/XML/1998/namespace", "space")); c.dispose(); - assertEquals("expected xml:spaces=\"preserve\" \"" + str + "\"", "preserve", t); + assertEquals( "preserve", t, "expected xml:spaces=\"preserve\" \"" + str + "\"" ); xwb.close(); swb.close(); } } - @Test(expected = IllegalStateException.class) + @Test public void getCachedFormulaResultType_throwsISE_whenNotAFormulaCell() { SXSSFCell instance = new SXSSFCell(null, CellType.BLANK); - instance.getCachedFormulaResultType(); + assertThrows(IllegalStateException.class, instance::getCachedFormulaResultType); } - @Test(expected = IllegalArgumentException.class) + @Test public void setCellValue_withTooLongRichTextString_throwsIAE() { Cell cell = spy(new SXSSFCell(null, CellType.BLANK)); int length = SpreadsheetVersion.EXCEL2007.getMaxTextLength() + 1; String string = new String(new byte[length], StandardCharsets.UTF_8).replace("\0", "x"); RichTextString richTextString = new XSSFRichTextString(string); - cell.setCellValue(richTextString); + assertThrows(IllegalArgumentException.class, () -> cell.setCellValue(richTextString)); } @Test @@ -136,7 +137,7 @@ public class TestSXSSFCell extends BaseT * However, this test should be enabled if array formulas are implemented for SXSSF. */ @Override - @Ignore + @Disabled public void setBlank_removesArrayFormula_ifCellIsPartOfAnArrayFormulaGroupContainingOnlyThisCell() { } @@ -145,34 +146,34 @@ public class TestSXSSFCell extends BaseT * However, this test should be enabled if array formulas are implemented for SXSSF. */ @Override - @Ignore + @Disabled @Test // <- annotation is necessary to override expected exception public void setBlank_throwsISE_ifCellIsPartOfAnArrayFormulaGroupContainingOtherCells() { } @Override - @Ignore + @Disabled @Test public void setCellFormula_throwsISE_ifCellIsPartOfAnArrayFormulaGroupContainingOtherCells() { } @Override - @Ignore + @Disabled public void removeFormula_turnsCellToBlank_whenFormulaWasASingleCellArrayFormula() { } @Override - @Ignore + @Disabled public void setCellFormula_onASingleCellArrayFormulaCell_preservesTheValue() { } @Test - @Ignore + @Disabled public void setCellFormula_isExceptionSafe_onBlankCell() { } @Test - @Ignore + @Disabled public void setCellType_FORMULA_onAnArrayFormulaCell_doesNothing() { } } Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFDataValidation.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFDataValidation.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFDataValidation.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFDataValidation.java Thu Dec 24 18:42:29 2020 @@ -16,7 +16,7 @@ ==================================================================== */ package org.apache.poi.xssf.streaming; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; @@ -27,7 +27,7 @@ import org.apache.poi.ss.usermodel.DataV import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.util.CellRangeAddressList; import org.apache.poi.xssf.SXSSFITestDataProvider; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class TestSXSSFDataValidation extends BaseTestDataValidation { Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFEvaluationSheet.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFEvaluationSheet.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFEvaluationSheet.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFEvaluationSheet.java Thu Dec 24 18:42:29 2020 @@ -20,7 +20,7 @@ import org.apache.poi.ss.formula.Evaluat import org.apache.poi.ss.usermodel.BaseTestXEvaluationSheet; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; -import org.junit.After; +import org.junit.jupiter.api.AfterEach; import java.io.IOException; import java.util.AbstractMap; @@ -31,7 +31,7 @@ import java.util.Map; public class TestSXSSFEvaluationSheet extends BaseTestXEvaluationSheet { private List<Workbook> workbooksToClose = new ArrayList<>(); - @After + @AfterEach public void closeWorkbooks() throws IOException { for (Workbook workbook : workbooksToClose) { workbook.close(); Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFFormulaEvaluation.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFFormulaEvaluation.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFFormulaEvaluation.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFFormulaEvaluation.java Thu Dec 24 18:42:29 2020 @@ -19,9 +19,10 @@ package org.apache.poi.xssf.streaming; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.fail; +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.fail; import java.io.IOException; @@ -29,13 +30,15 @@ import org.apache.poi.ss.usermodel.BaseT import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.FormulaEvaluator; import org.apache.poi.xssf.SXSSFITestDataProvider; +import org.apache.poi.xssf.streaming.SXSSFFormulaEvaluator.RowFlushedException; +import org.apache.poi.xssf.streaming.SXSSFFormulaEvaluator.SheetsFlushedException; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.junit.Assume; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; /** * Formula Evaluation with SXSSF. - * + * * Note that SXSSF can only evaluate formulas where the * cell is in the current window, and all references * from the cell are in the current window @@ -53,76 +56,65 @@ public final class TestSXSSFFormulaEvalu */ @Test public void testEvaluateAllFails() throws IOException { - SXSSFWorkbook wb = new SXSSFWorkbook(5); - SXSSFSheet s = wb.createSheet(); - - FormulaEvaluator eval = wb.getCreationHelper().createFormulaEvaluator(); - - s.createRow(0).createCell(0).setCellFormula("1+2"); - s.createRow(1).createCell(0).setCellFormula("A21"); - for (int i=2; i<19; i++) { s.createRow(i); } - - // Cells outside window will fail, whether referenced or not - s.createRow(19).createCell(0).setCellFormula("A1+A2"); - s.createRow(20).createCell(0).setCellFormula("A1+A11+100"); - try { - eval.evaluateAll(); - fail("Evaluate All shouldn't work, as some cells outside the window"); - } catch(SXSSFFormulaEvaluator.RowFlushedException e) { - // Expected + try (SXSSFWorkbook wb = new SXSSFWorkbook(5)) { + SXSSFSheet s = wb.createSheet(); + + FormulaEvaluator eval = wb.getCreationHelper().createFormulaEvaluator(); + + s.createRow(0).createCell(0).setCellFormula("1+2"); + s.createRow(1).createCell(0).setCellFormula("A21"); + for (int i = 2; i < 19; i++) { + s.createRow(i); + } + + // Cells outside window will fail, whether referenced or not + s.createRow(19).createCell(0).setCellFormula("A1+A2"); + s.createRow(20).createCell(0).setCellFormula("A1+A11+100"); + assertThrows(RowFlushedException.class, eval::evaluateAll, + "Evaluate All shouldn't work, as some cells outside the window"); } - - - // Inactive sheets will fail - XSSFWorkbook xwb = new XSSFWorkbook(); - xwb.createSheet("Open"); - xwb.createSheet("Closed"); - wb.close(); - wb = new SXSSFWorkbook(xwb, 5); - s = wb.getSheet("Closed"); - s.flushRows(); - s = wb.getSheet("Open"); - s.createRow(0).createCell(0).setCellFormula("1+2"); - - eval = wb.getCreationHelper().createFormulaEvaluator(); - try { - eval.evaluateAll(); - fail("Evaluate All shouldn't work, as sheets flushed"); - } catch (SXSSFFormulaEvaluator.SheetsFlushedException e) { - // expected here + // Inactive sheets will fail + try (XSSFWorkbook xwb = new XSSFWorkbook()) { + xwb.createSheet("Open"); + xwb.createSheet("Closed"); + + try (SXSSFWorkbook wb = new SXSSFWorkbook(xwb, 5)) { + SXSSFSheet s = wb.getSheet("Closed"); + s.flushRows(); + s = wb.getSheet("Open"); + s.createRow(0).createCell(0).setCellFormula("1+2"); + + FormulaEvaluator eval = wb.getCreationHelper().createFormulaEvaluator(); + assertThrows(SheetsFlushedException.class, eval::evaluateAll, "Evaluate All shouldn't work, as sheets flushed"); + } } - - wb.close(); } - + @Test public void testEvaluateRefOutsideWindowFails() throws IOException { - SXSSFWorkbook wb = new SXSSFWorkbook(5); - SXSSFSheet s = wb.createSheet(); - - s.createRow(0).createCell(0).setCellFormula("1+2"); - assertFalse(s.areAllRowsFlushed()); - assertEquals(-1, s.getLastFlushedRowNum()); - - for (int i=1; i<=19; i++) { s.createRow(i); } - Cell c = s.createRow(20).createCell(0); - c.setCellFormula("A1+100"); - - assertFalse(s.areAllRowsFlushed()); - assertEquals(15, s.getLastFlushedRowNum()); - - FormulaEvaluator eval = wb.getCreationHelper().createFormulaEvaluator(); - try { - eval.evaluateFormulaCell(c); - fail("Evaluate shouldn't work, as reference outside the window"); - } catch(SXSSFFormulaEvaluator.RowFlushedException e) { - // Expected + try (SXSSFWorkbook wb = new SXSSFWorkbook(5)) { + SXSSFSheet s = wb.createSheet(); + + s.createRow(0).createCell(0).setCellFormula("1+2"); + assertFalse(s.areAllRowsFlushed()); + assertEquals(-1, s.getLastFlushedRowNum()); + + for (int i = 1; i <= 19; i++) { + s.createRow(i); + } + Cell c = s.createRow(20).createCell(0); + c.setCellFormula("A1+100"); + + assertFalse(s.areAllRowsFlushed()); + assertEquals(15, s.getLastFlushedRowNum()); + + FormulaEvaluator eval = wb.getCreationHelper().createFormulaEvaluator(); + assertThrows(RowFlushedException.class, () -> eval.evaluateFormulaCell(c), + "Evaluate shouldn't work, as reference outside the window"); } - - wb.close(); } - + /** * If all formula cells + their references are inside the window, * then evaluation works @@ -134,64 +126,64 @@ public final class TestSXSSFFormulaEvalu s.createRow(0).createCell(0).setCellFormula("1+2"); s.createRow(1).createCell(1).setCellFormula("A1+10"); s.createRow(2).createCell(2).setCellFormula("B2+100"); - + FormulaEvaluator eval = wb.getCreationHelper().createFormulaEvaluator(); eval.evaluateAll(); - + assertEquals(3, (int)s.getRow(0).getCell(0).getNumericCellValue()); assertEquals(13, (int)s.getRow(1).getCell(1).getNumericCellValue()); assertEquals(113, (int)s.getRow(2).getCell(2).getNumericCellValue()); - + wb.close(); } - + @Test public void testEvaluateRefInsideWindow() throws IOException { SXSSFWorkbook wb = new SXSSFWorkbook(5); SXSSFSheet s = wb.createSheet(); - + FormulaEvaluator eval = wb.getCreationHelper().createFormulaEvaluator(); - + SXSSFCell c = s.createRow(0).createCell(0); c.setCellValue(1.5); - + c = s.createRow(1).createCell(0); c.setCellFormula("A1*2"); - + assertEquals(0, (int)c.getNumericCellValue()); eval.evaluateFormulaCell(c); assertEquals(3, (int)c.getNumericCellValue()); - + wb.close(); } - + @Test public void testEvaluateSimple() throws IOException { SXSSFWorkbook wb = new SXSSFWorkbook(5); SXSSFSheet s = wb.createSheet(); - + FormulaEvaluator eval = wb.getCreationHelper().createFormulaEvaluator(); - + SXSSFCell c = s.createRow(0).createCell(0); c.setCellFormula("1+2"); assertEquals(0, (int)c.getNumericCellValue()); eval.evaluateFormulaCell(c); assertEquals(3, (int)c.getNumericCellValue()); - + c = s.createRow(1).createCell(0); c.setCellFormula("CONCATENATE(\"hello\",\" \",\"world\")"); eval.evaluateFormulaCell(c); assertEquals("hello world", c.getStringCellValue()); - + wb.close(); } @Test + @Disabled( + "This test is disabled because it fails for SXSSF because " + + "handling of errors in formulas is slightly different than in XSSF, " + + "but this proved to be non-trivial to solve..." + ) public void testUpdateCachedFormulaResultFromErrorToNumber_bug46479() { - //noinspection ConstantConditions - Assume.assumeTrue("This test is disabled because it fails for SXSSF because " + - "handling of errors in formulas is slightly different than in XSSF, " + - "but this proved to be non-trivial to solve...", - false); } } Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFHyperlink.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFHyperlink.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFHyperlink.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFHyperlink.java Thu Dec 24 18:42:29 2020 @@ -19,7 +19,7 @@ package org.apache.poi.xssf.streaming; -import org.junit.After; +import org.junit.jupiter.api.AfterEach; import org.apache.poi.ss.usermodel.BaseTestHyperlink; import org.apache.poi.ss.usermodel.Hyperlink; @@ -38,11 +38,11 @@ public class TestSXSSFHyperlink extends } - @After + @AfterEach public void tearDown(){ SXSSFITestDataProvider.instance.cleanup(); } - + @Override public XSSFHyperlink copyHyperlink(Hyperlink link) { // FIXME: replace with SXSSFHyperlink if it ever gets created Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFRow.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFRow.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFRow.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFRow.java Thu Dec 24 18:42:29 2020 @@ -21,9 +21,9 @@ package org.apache.poi.xssf.streaming; import org.apache.poi.ss.tests.usermodel.BaseTestXRow; import org.apache.poi.xssf.SXSSFITestDataProvider; -import org.junit.After; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; /** * Tests for XSSFRow @@ -35,18 +35,18 @@ public final class TestSXSSFRow extends } - @After + @AfterEach public void tearDown() { ((SXSSFITestDataProvider) _testDataProvider).cleanup(); } @Override - @Ignore ("see <https://bz.apache.org/bugzilla/show_bug.cgi?id=62030#c1>") @Test + @Disabled("see <https://bz.apache.org/bugzilla/show_bug.cgi?id=62030#c1>") @Test public void testCellShiftingRight(){ // Remove when SXSSFRow.shiftCellsRight() is implemented. } @Override - @Ignore ("see <https://bz.apache.org/bugzilla/show_bug.cgi?id=62030#c1>") @Test + @Disabled("see <https://bz.apache.org/bugzilla/show_bug.cgi?id=62030#c1>") @Test public void testCellShiftingLeft(){ // Remove when SXSSFRow.shiftCellsLeft() is implemented. } Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheet.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheet.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheet.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheet.java Thu Dec 24 18:42:29 2020 @@ -19,9 +19,9 @@ package org.apache.poi.xssf.streaming; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.fail; import java.io.IOException; @@ -30,8 +30,8 @@ import org.apache.poi.ss.usermodel.Sheet import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.SXSSFITestDataProvider; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.junit.After; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; public final class TestSXSSFSheet extends BaseTestXSheet { @@ -41,7 +41,7 @@ public final class TestSXSSFSheet extend } - @After + @AfterEach public void tearDown(){ SXSSFITestDataProvider.instance.cleanup(); } @@ -123,29 +123,19 @@ public final class TestSXSSFSheet extend @Test public void overrideRowsInTemplate() throws IOException { - XSSFWorkbook template = new XSSFWorkbook(); - template.createSheet().createRow(1); - - Workbook wb = new SXSSFWorkbook(template); - try { - Sheet sheet = wb.getSheetAt(0); - - try { - sheet.createRow(1); - fail("expected exception"); - } catch (Throwable e){ + try (XSSFWorkbook template = new XSSFWorkbook()) { + template.createSheet().createRow(1); + try (Workbook wb = new SXSSFWorkbook(template);) { + Sheet sheet = wb.getSheetAt(0); + Throwable e; + e = assertThrows(Throwable.class, () -> sheet.createRow(1)); assertEquals("Attempting to write a row[1] in the range [0,1] that is already written to disk.", e.getMessage()); - } - try { - sheet.createRow(0); - fail("expected exception"); - } catch (Throwable e){ + + e = assertThrows(Throwable.class, () -> sheet.createRow(0)); assertEquals("Attempting to write a row[0] in the range [0,1] that is already written to disk.", e.getMessage()); + + sheet.createRow(2); } - sheet.createRow(2); - } finally { - wb.close(); - template.close(); } } @@ -157,11 +147,11 @@ public final class TestSXSSFSheet extend SXSSFRow row1 = sheet.createRow(1); sheet.changeRowNum(row0, 2); - assertEquals("Row 1 knows its row number", 1, row1.getRowNum()); - assertEquals("Row 2 knows its row number", 2, row0.getRowNum()); - assertEquals("Sheet knows Row 1's row number", 1, sheet.getRowNum(row1)); - assertEquals("Sheet knows Row 2's row number", 2, sheet.getRowNum(row0)); - assertEquals("Sheet row iteratation order should be ascending", row1, sheet.iterator().next()); + assertEquals(1, row1.getRowNum(), "Row 1 knows its row number"); + assertEquals(2, row0.getRowNum(), "Row 2 knows its row number"); + assertEquals(1, sheet.getRowNum(row1), "Sheet knows Row 1's row number"); + assertEquals(2, sheet.getRowNum(row0), "Sheet knows Row 2's row number"); + assertEquals(row1, sheet.iterator().next(), "Sheet row iteratation order should be ascending"); wb.close(); } Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheetAutoSizeColumn.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheetAutoSizeColumn.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheetAutoSizeColumn.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheetAutoSizeColumn.java Thu Dec 24 18:42:29 2020 @@ -16,19 +16,18 @@ ==================================================================== */ package org.apache.poi.xssf.streaming; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.junit.Assume.assumeFalse; -import static org.junit.Assume.assumeTrue; +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 static org.junit.jupiter.api.Assumptions.assumeFalse; +import static org.junit.jupiter.api.Assumptions.assumeTrue; import java.io.IOException; -import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.SortedSet; import java.util.TreeSet; +import java.util.stream.Stream; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Font; @@ -37,35 +36,32 @@ import org.apache.poi.ss.usermodel.Sheet import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.SheetUtil; -import org.junit.After; -import org.junit.Assume; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameter; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.api.AfterEach; +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; /** * Tests the auto-sizing behaviour of {@link SXSSFSheet} when not all * rows fit into the memory window size etc. - * + * * see Bug #57450 which reported the original misbehaviour */ -@RunWith(Parameterized.class) public class TestSXSSFSheetAutoSizeColumn { - + private static final String SHORT_CELL_VALUE = "Ben"; private static final String LONG_CELL_VALUE = "B Be Ben Beni Benif Benify Benif Beni Ben Be B"; - - // Approximative threshold to decide whether test is PASS or FAIL: + + // Approximate threshold to decide whether test is PASS or FAIL: // shortCellValue ends up with approx column width 1_000 (on my machine), // longCellValue ends up with approx. column width 10_000 (on my machine) // so shortCellValue can be expected to be < 5000 for all fonts // and longCellValue can be expected to be > 5000 for all fonts private static final int COLUMN_WIDTH_THRESHOLD_BETWEEN_SHORT_AND_LONG = 4000; private static final int MAX_COLUMN_WIDTH = 255*256; - + private static final SortedSet<Integer> columns; static { SortedSet<Integer>_columns = new TreeSet<>(); @@ -74,23 +70,16 @@ public class TestSXSSFSheetAutoSizeColum _columns.add(3); columns = Collections.unmodifiableSortedSet(_columns); } - - + + private SXSSFSheet sheet; private SXSSFWorkbook workbook; - - @Parameter - public boolean useMergedCells; - - @Parameters(name="{index}: useMergedCells={0}") - public static Collection<Object[]> data() { - return Arrays.asList(new Object[][] { - {false}, - {true}, - }); + + public static Stream<Arguments> data() { + return Stream.of(Arguments.of(false), Arguments.of(true)); } - - @After + + @AfterEach public void tearDownSheetAndWorkbook() throws IOException { if (sheet != null) { sheet.dispose(); @@ -99,26 +88,28 @@ public class TestSXSSFSheetAutoSizeColum workbook.close(); } } - - @Test - public void test_EmptySheet_NoException() { + + @ParameterizedTest + @MethodSource("data") + public void test_EmptySheet_NoException(boolean useMergedCells) { workbook = new SXSSFWorkbook(); sheet = workbook.createSheet(); sheet.trackAllColumnsForAutoSizing(); - + for (int i = 0; i < 10; i++) { sheet.autoSizeColumn(i, useMergedCells); } } - - @Test - public void test_WindowSizeDefault_AllRowsFitIntoWindowSize() { + + @ParameterizedTest + @MethodSource("data") + public void test_WindowSizeDefault_AllRowsFitIntoWindowSize(boolean useMergedCells) { workbook = new SXSSFWorkbook(); sheet = workbook.createSheet(); sheet.trackAllColumnsForAutoSizing(); - + final Cell cellRow0 = createRowWithCellValues(sheet, 0, LONG_CELL_VALUE); - + assumeRequiredFontsAreInstalled(workbook, cellRow0); createRowWithCellValues(sheet, 1, SHORT_CELL_VALUE); @@ -127,15 +118,16 @@ public class TestSXSSFSheetAutoSizeColum assertColumnWidthStrictlyWithinRange(sheet.getColumnWidth(0), COLUMN_WIDTH_THRESHOLD_BETWEEN_SHORT_AND_LONG, MAX_COLUMN_WIDTH); } - - @Test - public void test_WindowSizeEqualsOne_ConsiderFlushedRows() { + + @ParameterizedTest + @MethodSource("data") + public void test_WindowSizeEqualsOne_ConsiderFlushedRows(boolean useMergedCells) { workbook = new SXSSFWorkbook(null, 1); // Window size 1 so only last row will be in memory sheet = workbook.createSheet(); sheet.trackAllColumnsForAutoSizing(); - + final Cell cellRow0 = createRowWithCellValues(sheet, 0, LONG_CELL_VALUE); - + assumeRequiredFontsAreInstalled(workbook, cellRow0); createRowWithCellValues(sheet, 1, SHORT_CELL_VALUE); @@ -145,14 +137,15 @@ public class TestSXSSFSheetAutoSizeColum assertColumnWidthStrictlyWithinRange(sheet.getColumnWidth(0), COLUMN_WIDTH_THRESHOLD_BETWEEN_SHORT_AND_LONG, MAX_COLUMN_WIDTH); } - @Test - public void test_WindowSizeEqualsOne_lastRowIsNotWidest() { + @ParameterizedTest + @MethodSource("data") + public void test_WindowSizeEqualsOne_lastRowIsNotWidest(boolean useMergedCells) { workbook = new SXSSFWorkbook(null, 1); // Window size 1 so only last row will be in memory sheet = workbook.createSheet(); sheet.trackAllColumnsForAutoSizing(); - + final Cell cellRow0 = createRowWithCellValues(sheet, 0, LONG_CELL_VALUE); - + assumeRequiredFontsAreInstalled(workbook, cellRow0); createRowWithCellValues(sheet, 1, SHORT_CELL_VALUE); @@ -161,44 +154,46 @@ public class TestSXSSFSheetAutoSizeColum assertColumnWidthStrictlyWithinRange(sheet.getColumnWidth(0), COLUMN_WIDTH_THRESHOLD_BETWEEN_SHORT_AND_LONG, MAX_COLUMN_WIDTH); } - - @Test - public void test_WindowSizeEqualsOne_lastRowIsWidest() { + + @ParameterizedTest + @MethodSource("data") + public void test_WindowSizeEqualsOne_lastRowIsWidest(boolean useMergedCells) { workbook = new SXSSFWorkbook(null, 1); // Window size 1 so only last row will be in memory sheet = workbook.createSheet(); sheet.trackAllColumnsForAutoSizing(); - + final Cell cellRow0 = createRowWithCellValues(sheet, 0, SHORT_CELL_VALUE); assumeRequiredFontsAreInstalled(workbook, cellRow0); - + createRowWithCellValues(sheet, 1, LONG_CELL_VALUE); sheet.autoSizeColumn(0, useMergedCells); assertColumnWidthStrictlyWithinRange(sheet.getColumnWidth(0), COLUMN_WIDTH_THRESHOLD_BETWEEN_SHORT_AND_LONG, MAX_COLUMN_WIDTH); } - + // fails only for useMergedCell=true - @Test - public void test_WindowSizeEqualsOne_flushedRowHasMergedCell() { + @ParameterizedTest + @MethodSource("data") + public void test_WindowSizeEqualsOne_flushedRowHasMergedCell(boolean useMergedCells) { workbook = new SXSSFWorkbook(null, 1); // Window size 1 so only last row will be in memory sheet = workbook.createSheet(); sheet.trackAllColumnsForAutoSizing(); - + Cell a1 = createRowWithCellValues(sheet, 0, LONG_CELL_VALUE); assumeRequiredFontsAreInstalled(workbook, a1); assertEquals(0, sheet.addMergedRegion(CellRangeAddress.valueOf("A1:B1"))); - + createRowWithCellValues(sheet, 1, SHORT_CELL_VALUE, SHORT_CELL_VALUE); - + /* * A B * 1 LONGMERGED * 2 SHORT SHORT */ - + sheet.autoSizeColumn(0, useMergedCells); sheet.autoSizeColumn(1, useMergedCells); @@ -217,145 +212,126 @@ public class TestSXSSFSheetAutoSizeColum } assertColumnWidthStrictlyWithinRange(sheet.getColumnWidth(1), 0, COLUMN_WIDTH_THRESHOLD_BETWEEN_SHORT_AND_LONG); //short } - - @Test - public void autoSizeColumn_trackColumnForAutoSizing() { + + @ParameterizedTest + @MethodSource("data") + public void autoSizeColumn_trackColumnForAutoSizing(boolean useMergedCells) { workbook = new SXSSFWorkbook(); sheet = workbook.createSheet(); sheet.trackColumnForAutoSizing(0); - + SortedSet<Integer> expected = new TreeSet<>(); expected.add(0); assertEquals(expected, sheet.getTrackedColumnsForAutoSizing()); - + sheet.autoSizeColumn(0, useMergedCells); - try { - sheet.autoSizeColumn(1, useMergedCells); - fail("Should not be able to auto-size an untracked column"); - } - catch (final IllegalStateException e) { - // expected - } + assertThrows(IllegalStateException.class, () -> sheet.autoSizeColumn(1, useMergedCells), + "Should not be able to auto-size an untracked column"); } - - @Test - public void autoSizeColumn_trackColumnsForAutoSizing() { + + @ParameterizedTest + @MethodSource("data") + public void autoSizeColumn_trackColumnsForAutoSizing(boolean useMergedCells) { workbook = new SXSSFWorkbook(); sheet = workbook.createSheet(); - + sheet.trackColumnsForAutoSizing(columns); SortedSet<Integer> sorted = new TreeSet<>(columns); assertEquals(sorted, sheet.getTrackedColumnsForAutoSizing()); - + sheet.autoSizeColumn(sorted.first(), useMergedCells); - try { - assumeFalse(columns.contains(5)); - sheet.autoSizeColumn(5, useMergedCells); - fail("Should not be able to auto-size an untracked column"); - } - catch (final IllegalStateException e) { - // expected - } + assumeFalse(columns.contains(5)); + + assertThrows(IllegalStateException.class, () -> sheet.autoSizeColumn(5, useMergedCells), + "Should not be able to auto-size an untracked column"); } - - @Test - public void autoSizeColumn_untrackColumnForAutoSizing() { + + @ParameterizedTest + @MethodSource("data") + public void autoSizeColumn_untrackColumnForAutoSizing(boolean useMergedCells) { workbook = new SXSSFWorkbook(); sheet = workbook.createSheet(); - + sheet.trackColumnsForAutoSizing(columns); sheet.untrackColumnForAutoSizing(columns.first()); - + assumeTrue(sheet.getTrackedColumnsForAutoSizing().contains(columns.last())); sheet.autoSizeColumn(columns.last(), useMergedCells); - try { - assumeFalse(sheet.getTrackedColumnsForAutoSizing().contains(columns.first())); - sheet.autoSizeColumn(columns.first(), useMergedCells); - fail("Should not be able to auto-size an untracked column"); - } - catch (final IllegalStateException e) { - // expected - } + assumeFalse(sheet.getTrackedColumnsForAutoSizing().contains(columns.first())); + + assertThrows(IllegalStateException.class, () -> sheet.autoSizeColumn(columns.first(), useMergedCells), + "Should not be able to auto-size an untracked column"); } - - @Test - public void autoSizeColumn_untrackColumnsForAutoSizing() { + + @ParameterizedTest + @MethodSource("data") + public void autoSizeColumn_untrackColumnsForAutoSizing(boolean useMergedCells) { workbook = new SXSSFWorkbook(); sheet = workbook.createSheet(); - + sheet.trackColumnForAutoSizing(15); sheet.trackColumnsForAutoSizing(columns); sheet.untrackColumnsForAutoSizing(columns); - + assumeTrue(sheet.getTrackedColumnsForAutoSizing().contains(15)); sheet.autoSizeColumn(15, useMergedCells); - try { - assumeFalse(sheet.getTrackedColumnsForAutoSizing().contains(columns.first())); - sheet.autoSizeColumn(columns.first(), useMergedCells); - fail("Should not be able to auto-size an untracked column"); - } - catch (final IllegalStateException e) { - // expected - } + assumeFalse(sheet.getTrackedColumnsForAutoSizing().contains(columns.first())); + + assertThrows(IllegalStateException.class, () -> sheet.autoSizeColumn(columns.first(), useMergedCells), + "Should not be able to auto-size an untracked column"); } - + @Test public void autoSizeColumn_isColumnTrackedForAutoSizing() { workbook = new SXSSFWorkbook(); sheet = workbook.createSheet(); - + sheet.trackColumnsForAutoSizing(columns); for (int column : columns) { assertTrue(sheet.isColumnTrackedForAutoSizing(column)); - + assumeFalse(columns.contains(column+10)); assertFalse(sheet.isColumnTrackedForAutoSizing(column+10)); } } - - @Test - public void autoSizeColumn_trackAllColumns() { + + @ParameterizedTest + @MethodSource("data") + public void autoSizeColumn_trackAllColumns(boolean useMergedCells) { workbook = new SXSSFWorkbook(); sheet = workbook.createSheet(); - + sheet.trackAllColumnsForAutoSizing(); sheet.autoSizeColumn(0, useMergedCells); - + sheet.untrackAllColumnsForAutoSizing(); - try { - sheet.autoSizeColumn(0, useMergedCells); - fail("Should not be able to auto-size an implicitly untracked column"); - } catch (final IllegalStateException e) { - // expected - } + assertThrows(IllegalStateException.class, () -> sheet.autoSizeColumn(0, useMergedCells), + "Should not be able to auto-size an implicitly untracked column"); } - - @Test - public void autoSizeColumn_trackAllColumns_explicitUntrackColumn() { + + @ParameterizedTest + @MethodSource("data") + public void autoSizeColumn_trackAllColumns_explicitUntrackColumn(boolean useMergedCells) { workbook = new SXSSFWorkbook(); sheet = workbook.createSheet(); - + sheet.trackColumnsForAutoSizing(columns); sheet.trackAllColumnsForAutoSizing(); boolean untracked = sheet.untrackColumnForAutoSizing(0); assertTrue(untracked); - try { - sheet.autoSizeColumn(0, useMergedCells); - fail("Should not be able to auto-size an explicitly untracked column"); - } catch (final IllegalStateException e) { - // expected - } + assertThrows(IllegalStateException.class, () -> sheet.autoSizeColumn(0, useMergedCells), + "Should not be able to auto-size an explicitly untracked column"); } - - + + private static void assumeRequiredFontsAreInstalled(final Workbook workbook, final Cell cell) { // autoSize will fail if required fonts are not installed, skip this test then Font font = workbook.getFontAt(cell.getCellStyle().getFontIndex()); - Assume.assumeTrue("Cannot verify autoSizeColumn() because the necessary Fonts are not installed on this machine: " + font, - SheetUtil.canComputeColumnWidth(font)); + assumeTrue(SheetUtil.canComputeColumnWidth(font), + "Cannot verify autoSizeColumn() because the necessary Fonts are not installed on this machine: " + font); } - + private static Cell createRowWithCellValues(final Sheet sheet, final int rowNumber, final String... cellValues) { Row row = sheet.createRow(rowNumber); int cellIndex = 0; @@ -369,12 +345,12 @@ public class TestSXSSFSheetAutoSizeColum } return firstCell; } - + private static void assertColumnWidthStrictlyWithinRange(final int actualColumnWidth, final int lowerBoundExclusive, final int upperBoundExclusive) { - assertTrue("Expected a column width greater than " + lowerBoundExclusive + " but found " + actualColumnWidth, - actualColumnWidth > lowerBoundExclusive); - assertTrue("Expected column width less than " + upperBoundExclusive + " but found " + actualColumnWidth, actualColumnWidth < upperBoundExclusive); - + assertTrue(actualColumnWidth > lowerBoundExclusive, + "Expected a column width greater than " + lowerBoundExclusive + " but found " + actualColumnWidth); + assertTrue(actualColumnWidth < upperBoundExclusive, + "Expected column width less than " + upperBoundExclusive + " but found " + actualColumnWidth); } - + } Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFUnicodeSurrogates.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFUnicodeSurrogates.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFUnicodeSurrogates.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFUnicodeSurrogates.java Thu Dec 24 18:42:29 2020 @@ -17,13 +17,14 @@ package org.apache.poi.xssf.streaming; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.util.TempFile; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.File; import java.io.FileInputStream; @@ -33,7 +34,7 @@ import java.io.IOException; public class TestSXSSFUnicodeSurrogates { // "ððððððððððððððððððððððð ð¡ð¢ð£ð¤ð¥ð¦ð§ð¨ð©ðªð«ð¬ðð®ð¯ð°ð±ð²ð³ð´ðµð¶ð·ð¸ð¹ðº"; - private static String unicodeText = + private static final String unicodeText = "\uD835\uDF4A\uD835\uDF4B\uD835\uDF4C\uD835\uDF4D\uD835\uDF4E\uD835\uDF4F\uD835\uDF50\uD835" + "\uDF51\uD835\uDF52\uD835\uDF53\uD835\uDF54\uD835\uDF55\uD835\uDF56\uD835\uDF57\uD835\uDF58" + "\uD835\uDF59\uD835\uDF5A\uD835\uDF5B\uD835\uDF5C\uD835\uDF5D\uD835\uDF5E\uD835\uDF5F\uD835" + @@ -58,7 +59,7 @@ public class TestSXSSFUnicodeSurrogates XSSFWorkbook wb2 = new XSSFWorkbook(fis)) { Sheet sheet2 = wb2.getSheet(sheetName); Cell cell2 = sheet2.getRow(0).getCell(0); - Assert.assertEquals(unicodeText, cell2.getStringCellValue()); + assertEquals(unicodeText, cell2.getStringCellValue()); } } finally { tf.delete(); Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java Thu Dec 24 18:42:29 2020 @@ -21,12 +21,13 @@ package org.apache.poi.xssf.streaming; import static org.apache.poi.POITestCase.assertEndsWith; import static org.apache.poi.POITestCase.assertStartsWith; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -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.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -52,9 +53,9 @@ import org.apache.poi.xssf.SXSSFITestDat import org.apache.poi.xssf.XSSFTestDataSamples; import org.apache.poi.xssf.model.SharedStringsTable; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.junit.After; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; public final class TestSXSSFWorkbook extends BaseTestXWorkbook { @@ -62,7 +63,7 @@ public final class TestSXSSFWorkbook ext super(SXSSFITestDataProvider.instance); } - @After + @AfterEach public void tearDown(){ ((SXSSFITestDataProvider)_testDataProvider).cleanup(); } @@ -73,12 +74,8 @@ public final class TestSXSSFWorkbook ext @Override @Test public void cloneSheet() throws IOException { - try { - super.cloneSheet(); - fail("expected exception"); - } catch (RuntimeException e){ - assertEquals("Not Implemented", e.getMessage()); - } + RuntimeException e = assertThrows(RuntimeException.class, super::cloneSheet); + assertEquals("Not Implemented", e.getMessage()); } /** @@ -87,12 +84,8 @@ public final class TestSXSSFWorkbook ext @Override @Test public void sheetClone() throws IOException { - try { - super.sheetClone(); - fail("expected exception"); - } catch (RuntimeException e){ - assertEquals("Not Implemented", e.getMessage()); - } + RuntimeException e = assertThrows(RuntimeException.class, super::sheetClone); + assertEquals("Not Implemented", e.getMessage()); } /** @@ -100,7 +93,7 @@ public final class TestSXSSFWorkbook ext * changes. */ @Override - @Ignore("SXSSF doesn't update formulas on sheet name changes, as most cells probably aren't in memory at the time") + @Disabled("SXSSF doesn't update formulas on sheet name changes, as most cells probably aren't in memory at the time") @Test public void setSheetName() { } @@ -288,7 +281,7 @@ public final class TestSXSSFWorkbook ext assertEquals("sheet" + i, sh.getSheetName()); for(int j = 0; j < rowNum; j++){ Row row = sh.getRow(j); - assertNotNull("row[" + j + "]", row); + assertNotNull(row, "row[" + j + "]"); Cell cell1 = row.getCell(0); assertEquals(new CellReference(cell1).formatAsString(), cell1.getStringCellValue()); @@ -353,7 +346,7 @@ public final class TestSXSSFWorkbook ext wb2.close(); } - @Ignore("currently writing the same sheet multiple times is not supported...") + @Disabled("currently writing the same sheet multiple times is not supported...") @Test public void bug53515() throws Exception { Workbook wb1 = new SXSSFWorkbook(10); @@ -366,7 +359,7 @@ public final class TestSXSSFWorkbook ext wb1.close(); } - @Ignore("Crashes the JVM because of documented JVM behavior with concurrent writing/reading of zip-files, " + @Disabled("Crashes the JVM because of documented JVM behavior with concurrent writing/reading of zip-files, " + "see http://www.oracle.com/technetwork/java/javase/documentation/overview-156328.html") @Test public void bug53515a() throws Exception { @@ -494,7 +487,7 @@ public final class TestSXSSFWorkbook ext * TODO Fix this to work! */ @Test - @Ignore + @Disabled public void createFromReadOnlyWorkbook() throws Exception { String sheetName = "Test SXSSF"; File input = XSSFTestDataSamples.getSampleFile("sample.xlsx"); Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbookWithCustomZipEntrySource.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbookWithCustomZipEntrySource.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbookWithCustomZipEntrySource.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbookWithCustomZipEntrySource.java Thu Dec 24 18:42:29 2020 @@ -19,9 +19,9 @@ package org.apache.poi.xssf.streaming; -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.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import static java.nio.charset.StandardCharsets.UTF_8; import java.io.ByteArrayInputStream; @@ -31,7 +31,6 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.nio.charset.Charset; import java.security.GeneralSecurityException; import java.util.List; @@ -46,17 +45,17 @@ import org.apache.poi.xssf.usermodel.XSS import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * This class tests that an SXSSFWorkbook can be written and read where all temporary disk I/O * is encrypted, but the final saved workbook is not encrypted */ public final class TestSXSSFWorkbookWithCustomZipEntrySource { - + final String sheetName = "TestSheet1"; final String cellValue = "customZipEntrySource"; - + // write an unencrypted workbook to disk, but any temporary files are encrypted @Test public void customZipEntrySource() throws IOException { @@ -77,7 +76,7 @@ public final class TestSXSSFWorkbookWith assertEquals(cellValue, xc1.getStringCellValue()); xwb.close(); } - + // write an encrypted workbook to disk, and encrypt any temporary files as well @Test public void customZipEntrySourceForWriteAndRead() throws IOException, GeneralSecurityException, InvalidFormatException { @@ -105,7 +104,7 @@ public final class TestSXSSFWorkbookWith } } } - + @Test public void validateTempFilesAreEncrypted() throws IOException { TempFileRecordingSXSSFWorkbookWithCustomZipEntrySource workbook = new TempFileRecordingSXSSFWorkbookWithCustomZipEntrySource(); @@ -119,7 +118,7 @@ public final class TestSXSSFWorkbookWith List<File> tempFiles = workbook.getTempFiles(); assertEquals(1, tempFiles.size()); File tempFile = tempFiles.get(0); - assertTrue("tempFile exists?", tempFile.exists()); + assertTrue(tempFile.exists(), "tempFile exists?"); try (InputStream stream = new FileInputStream(tempFile)) { byte[] data = IOUtils.toByteArray(stream); String text = new String(data, UTF_8); @@ -127,6 +126,6 @@ public final class TestSXSSFWorkbookWith assertFalse(text.contains(cellValue)); } workbook.dispose(); - assertFalse("tempFile deleted after dispose?", tempFile.exists()); + assertFalse(tempFile.exists(), "tempFile deleted after dispose?"); } } \ No newline at end of file Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSheetDataWriter.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSheetDataWriter.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSheetDataWriter.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSheetDataWriter.java Thu Dec 24 18:42:29 2020 @@ -19,9 +19,9 @@ package org.apache.poi.xssf.streaming; -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.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.io.FileInputStream; @@ -29,7 +29,7 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import org.apache.poi.util.IOUtils; -import org.junit.Test; +import org.junit.jupiter.api.Test; public final class TestSheetDataWriter { @@ -53,7 +53,7 @@ public final class TestSheetDataWriter { assertTrue(SheetDataWriter.replaceWithQuestionMark('\u000F')); assertTrue(SheetDataWriter.replaceWithQuestionMark('\u001F')); } - + @Test public void testWriteUnicodeSurrogates() throws IOException { SheetDataWriter writer = new SheetDataWriter(); Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/BaseTestXSSFPivotTable.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/BaseTestXSSFPivotTable.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/BaseTestXSSFPivotTable.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/BaseTestXSSFPivotTable.java Thu Dec 24 18:42:29 2020 @@ -16,9 +16,10 @@ ==================================================================== */ package org.apache.poi.xssf.usermodel; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.IOException; @@ -28,9 +29,9 @@ import org.apache.poi.ss.usermodel.DataC import org.apache.poi.ss.util.AreaReference; import org.apache.poi.ss.util.CellReference; import org.apache.poi.xssf.XSSFITestDataProvider; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageField; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageFields; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotFields; @@ -47,10 +48,10 @@ public abstract class BaseTestXSSFPivotT /** * required to set up the test pivot tables and cell reference, either by name or reference. */ - @Before + @BeforeEach public abstract void setUp(); - @After + @AfterEach public void tearDown() throws IOException { if (wb != null) { XSSFWorkbook wb2 = _testDataProvider.writeOutAndReadBack(wb); @@ -87,9 +88,9 @@ public abstract class BaseTestXSSFPivotT /** * Verify that it's not possible to create a row label outside of the referenced area. */ - @Test(expected = IndexOutOfBoundsException.class) + @Test public void testAddRowLabelOutOfRangeThrowsException() { - pivotTable.addRowLabel(5); + assertThrows(IndexOutOfBoundsException.class, () -> pivotTable.addRowLabel(5)); } /** @@ -208,9 +209,9 @@ public abstract class BaseTestXSSFPivotT /** * Verify that it's not possible to create a column label outside of the referenced area. */ - @Test(expected = IndexOutOfBoundsException.class) + @Test public void testAddColumnLabelOutOfRangeThrowsException() { - pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 5); + assertThrows(IndexOutOfBoundsException.class, () -> pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 5)); } /** @@ -230,9 +231,9 @@ public abstract class BaseTestXSSFPivotT /** * Verify that it's not possible to create a data column outside of the referenced area. */ - @Test(expected = IndexOutOfBoundsException.class) + @Test public void testAddDataColumnOutOfRangeThrowsException() { - pivotTable.addDataColumn(5, true); + assertThrows(IndexOutOfBoundsException.class, () -> pivotTable.addDataColumn(5, true)); } /** @@ -253,9 +254,9 @@ public abstract class BaseTestXSSFPivotT /** * Verify that it's not possible to create a new filter outside of the referenced area. */ - @Test(expected = IndexOutOfBoundsException.class) + @Test public void testAddReportFilterOutOfRangeThrowsException() { - pivotTable.addReportFilter(5); + assertThrows(IndexOutOfBoundsException.class, () -> pivotTable.addReportFilter(5)); } /** @@ -316,8 +317,8 @@ public abstract class BaseTestXSSFPivotT /** * Verify that it's not possible to create a col label outside of the referenced area. */ - @Test(expected = IndexOutOfBoundsException.class) + @Test public void testAddColLabelOutOfRangeThrowsException() { - pivotTable.addColLabel(5); + assertThrows(IndexOutOfBoundsException.class, () -> pivotTable.addColLabel(5)); } } Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestFormulaEvaluatorOnXSSF.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestFormulaEvaluatorOnXSSF.java?rev=1884783&r1=1884782&r2=1884783&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestFormulaEvaluatorOnXSSF.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestFormulaEvaluatorOnXSSF.java Thu Dec 24 18:42:29 2020 @@ -17,17 +17,16 @@ package org.apache.poi.xssf.usermodel; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; -import static org.junit.Assume.assumeFalse; -import static org.junit.Assume.assumeNotNull; -import static org.junit.Assume.assumeTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.fail; +import static org.junit.jupiter.api.Assumptions.assumeFalse; +import static org.junit.jupiter.api.Assumptions.assumeTrue; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import java.util.Locale; +import java.util.stream.Stream; import org.apache.poi.hssf.HSSFTestDataSamples; import org.apache.poi.openxml4j.opc.OPCPackage; @@ -43,12 +42,10 @@ import org.apache.poi.ss.usermodel.Sheet import org.apache.poi.util.LocaleUtil; import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogger; -import org.junit.AfterClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameter; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; /** * Performs much the same role as {@link TestFormulasFromSpreadsheet}, @@ -60,7 +57,6 @@ import org.junit.runners.Parameterized.P * Excel 2007, and re-save it as FormulaEvalTestData_Copy.xlsx * */ -@RunWith(Parameterized.class) public final class TestFormulaEvaluatorOnXSSF { private static final POILogger logger = POILogFactory.getLogger(TestFormulaEvaluatorOnXSSF.class); @@ -72,7 +68,7 @@ public final class TestFormulaEvaluatorO /** * This class defines constants for navigating around the test data spreadsheet used for these tests. */ - private static interface SS { + private interface SS { /** * Name of the test spreadsheet (found in the standard test data folder) @@ -107,21 +103,13 @@ public final class TestFormulaEvaluatorO int NUMBER_OF_ROWS_PER_FUNCTION = 4; } - @Parameter(value = 0) - public String targetFunctionName; - @Parameter(value = 1) - public int formulasRowIdx; - @Parameter(value = 2) - public int expectedValuesRowIdx; - - @AfterClass + @AfterAll public static void closeResource() throws Exception { LocaleUtil.setUserLocale(userLocale); workbook.close(); } - @Parameters(name="{0}") - public static Collection<Object[]> data() throws Exception { + public static Stream<Arguments> data() throws Exception { // Function "Text" uses custom-formats which are locale specific // can't set the locale on a per-testrun execution, as some settings have been // already set, when we would try to change the locale by then @@ -132,7 +120,7 @@ public final class TestFormulaEvaluatorO sheet = workbook.getSheetAt( 0 ); evaluator = new XSSFFormulaEvaluator(workbook); - List<Object[]> data = new ArrayList<>(); + List<Arguments> data = new ArrayList<>(); processFunctionGroup(data, SS.START_OPERATORS_ROW_INDEX, null); processFunctionGroup(data, SS.START_FUNCTIONS_ROW_INDEX, null); @@ -140,7 +128,7 @@ public final class TestFormulaEvaluatorO // processFunctionGroup(data, SS.START_OPERATORS_ROW_INDEX, "ConcatEval"); // processFunctionGroup(data, SS.START_FUNCTIONS_ROW_INDEX, "Text"); - return data; + return data.stream(); } /** @@ -148,7 +136,7 @@ public final class TestFormulaEvaluatorO * @param testFocusFunctionName name of a single function/operator to test alone. * Typically pass <code>null</code> to test all functions */ - private static void processFunctionGroup(List<Object[]> data, int startRowIndex, String testFocusFunctionName) { + private static void processFunctionGroup(List<Arguments> data, int startRowIndex, String testFocusFunctionName) { for (int rowIndex = startRowIndex; true; rowIndex += SS.NUMBER_OF_ROWS_PER_FUNCTION) { Row r = sheet.getRow(rowIndex); @@ -156,9 +144,9 @@ public final class TestFormulaEvaluatorO if(r == null) continue; String targetFunctionName = getTargetFunctionName(r); - assertNotNull("Test spreadsheet cell empty on row (" + assertNotNull(targetFunctionName, "Test spreadsheet cell empty on row (" + (rowIndex+1) + "). Expected function name or '" - + SS.FUNCTION_NAMES_END_SENTINEL + "'", targetFunctionName); + + SS.FUNCTION_NAMES_END_SENTINEL + "'"); if(targetFunctionName.equals(SS.FUNCTION_NAMES_END_SENTINEL)) { // found end of functions list @@ -169,18 +157,18 @@ public final class TestFormulaEvaluatorO // expected results are on the row below Row expectedValuesRow = sheet.getRow(rowIndex + 1); // +1 for 1-based, +1 for next row - assertNotNull("Missing expected values row for function '" - + targetFunctionName + " (row " + rowIndex + 2 + ")" - , expectedValuesRow); + assertNotNull(expectedValuesRow, "Missing expected values row for function '" + + targetFunctionName + " (row " + rowIndex + 2 + ")"); - data.add(new Object[]{targetFunctionName, rowIndex, rowIndex + 1}); + data.add(Arguments.of(targetFunctionName, rowIndex, rowIndex + 1)); } } } - @Test - public void processFunctionRow() { + @ParameterizedTest + @MethodSource("data") + public void processFunctionRow(String targetFunctionName, int formulasRowIdx, int expectedValuesRowIdx) { Row formulasRow = sheet.getRow(formulasRowIdx); Row expectedValuesRow = sheet.getRow(expectedValuesRowIdx); @@ -189,7 +177,7 @@ public final class TestFormulaEvaluatorO // iterate across the row for all the evaluation cases for (short colnum=SS.COLUMN_INDEX_FIRST_TEST_VALUE; colnum < endcolnum; colnum++) { Cell c = formulasRow.getCell(colnum); - assumeNotNull(c); + assumeTrue(c != null); assumeTrue(c.getCellType() == CellType.FORMULA); ignoredFormulaTestCase(c.getCellFormula()); @@ -199,20 +187,20 @@ public final class TestFormulaEvaluatorO String msg = String.format(Locale.ROOT, "Function '%s': Formula: %s @ %d:%d" , targetFunctionName, c.getCellFormula(), formulasRow.getRowNum(), colnum); - assertNotNull(msg + " - Bad setup data expected value is null", expValue); - assertNotNull(msg + " - actual value was null", actValue); + assertNotNull(expValue, msg + " - Bad setup data expected value is null"); + assertNotNull(actValue, msg + " - actual value was null"); final CellType expectedCellType = expValue.getCellType(); switch (expectedCellType) { case BLANK: - assertEquals(msg, CellType.BLANK, actValue.getCellType()); + assertEquals(CellType.BLANK, actValue.getCellType(), msg); break; case BOOLEAN: - assertEquals(msg, CellType.BOOLEAN, actValue.getCellType()); - assertEquals(msg, expValue.getBooleanCellValue(), actValue.getBooleanValue()); + assertEquals(CellType.BOOLEAN, actValue.getCellType(), msg); + assertEquals(expValue.getBooleanCellValue(), actValue.getBooleanValue(), msg); break; case ERROR: - assertEquals(msg, CellType.ERROR, actValue.getCellType()); + assertEquals(CellType.ERROR, actValue.getCellType(), msg); // if(false) { // TODO: fix ~45 functions which are currently returning incorrect error values // assertEquals(msg, expValue.getErrorCellValue(), actValue.getErrorValue()); // } @@ -220,15 +208,15 @@ public final class TestFormulaEvaluatorO case FORMULA: // will never be used, since we will call method after formula evaluation fail("Cannot expect formula as result of formula evaluation: " + msg); case NUMERIC: - assertEquals(msg, CellType.NUMERIC, actValue.getCellType()); - BaseTestNumeric.assertEquals(msg, expValue.getNumericCellValue(), actValue.getNumberValue(), BaseTestNumeric.POS_ZERO, BaseTestNumeric.DIFF_TOLERANCE_FACTOR); + assertEquals(CellType.NUMERIC, actValue.getCellType(), msg); + BaseTestNumeric.assertDouble(msg, expValue.getNumericCellValue(), actValue.getNumberValue(), BaseTestNumeric.POS_ZERO, BaseTestNumeric.DIFF_TOLERANCE_FACTOR); // double delta = Math.abs(expValue.getNumericCellValue()-actValue.getNumberValue()); // double pctExpValue = Math.abs(0.00001*expValue.getNumericCellValue()); // assertTrue(msg, delta <= pctExpValue); break; case STRING: - assertEquals(msg, CellType.STRING, actValue.getCellType()); - assertEquals(msg, expValue.getRichStringCellValue().getString(), actValue.getStringValue()); + assertEquals(CellType.STRING, actValue.getCellType(), msg); + assertEquals(expValue.getRichStringCellValue().getString(), actValue.getStringValue(), msg); break; default: fail("Unexpected cell type: " + expectedCellType); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org For additional commands, e-mail: commits-h...@poi.apache.org