Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheetUpdateArrayFormulas.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheetUpdateArrayFormulas.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheetUpdateArrayFormulas.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheetUpdateArrayFormulas.java Fri Dec 27 23:00:13 2019 @@ -17,13 +17,19 @@ package org.apache.poi.hssf.usermodel; +import static org.junit.Assert.assertArrayEquals; 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.assertTrue; -import static org.junit.Assert.fail; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.apache.poi.POITestCase; import org.apache.poi.hssf.HSSFITestDataProvider; import org.apache.poi.hssf.record.ArrayRecord; import org.apache.poi.hssf.record.FormulaRecord; @@ -31,7 +37,6 @@ import org.apache.poi.hssf.record.Record import org.apache.poi.hssf.record.aggregates.FormulaRecordAggregate; import org.apache.poi.hssf.record.aggregates.RowRecordsAggregate; import org.apache.poi.hssf.record.aggregates.SharedValueManager; -import org.apache.poi.hssf.record.aggregates.TestSharedValueManager; import org.apache.poi.ss.usermodel.BaseTestSheetUpdateArrayFormulas; import org.apache.poi.ss.usermodel.CellRange; import org.apache.poi.ss.util.CellRangeAddress; @@ -39,9 +44,6 @@ import org.junit.Test; /** * Test array formulas in HSSF - * - * @author Yegor Kozlov - * @author Josh Micich */ public final class TestHSSFSheetUpdateArrayFormulas extends BaseTestSheetUpdateArrayFormulas { @@ -53,27 +55,26 @@ public final class TestHSSFSheetUpdateAr // Local methods here test HSSF-specific details of updating array formulas @Test public void testHSSFSetArrayFormula_singleCell() throws IOException { - HSSFWorkbook workbook = new HSSFWorkbook(); - HSSFSheet sheet = workbook.createSheet("Sheet1"); + try (HSSFWorkbook workbook = new HSSFWorkbook()) { + HSSFSheet sheet = workbook.createSheet("Sheet1"); - CellRangeAddress range = new CellRangeAddress(2, 2, 2, 2); - HSSFCell[] cells = sheet.setArrayFormula("SUM(C11:C12*D11:D12)", range).getFlattenedCells(); - assertEquals(1, cells.length); - - // sheet.setArrayFormula creates rows and cells for the designated range - assertNotNull(sheet.getRow(2)); - HSSFCell cell = sheet.getRow(2).getCell(2); - assertNotNull(cell); - - assertTrue(cell.isPartOfArrayFormulaGroup()); - //retrieve the range and check it is the same - assertEquals(range.formatAsString(), cell.getArrayFormulaRange().formatAsString()); - - FormulaRecordAggregate agg = (FormulaRecordAggregate)cell.getCellValueRecord(); - assertEquals(range.formatAsString(), agg.getArrayFormulaRange().formatAsString()); - assertTrue(agg.isPartOfArrayFormula()); - - workbook.close(); + CellRangeAddress range = new CellRangeAddress(2, 2, 2, 2); + HSSFCell[] cells = sheet.setArrayFormula("SUM(C11:C12*D11:D12)", range).getFlattenedCells(); + assertEquals(1, cells.length); + + // sheet.setArrayFormula creates rows and cells for the designated range + assertNotNull(sheet.getRow(2)); + HSSFCell cell = sheet.getRow(2).getCell(2); + assertNotNull(cell); + + assertTrue(cell.isPartOfArrayFormulaGroup()); + //retrieve the range and check it is the same + assertEquals(range.formatAsString(), cell.getArrayFormulaRange().formatAsString()); + + FormulaRecordAggregate agg = (FormulaRecordAggregate) cell.getCellValueRecord(); + assertEquals(range.formatAsString(), agg.getArrayFormulaRange().formatAsString()); + assertTrue(agg.isPartOfArrayFormula()); + } } /** @@ -81,53 +82,38 @@ public final class TestHSSFSheetUpdateAr */ @Test public void testAddRemoveArrayFormulas_recordUpdates() throws IOException { - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFSheet s = wb.createSheet("Sheet1"); - - CellRange<HSSFCell> cr = s.setArrayFormula("123", CellRangeAddress.valueOf("B5:C6")); - Record[] recs; - int ix; - recs = RecordInspector.getRecords(s, 0); - ix = findRecordOfType(recs, ArrayRecord.class, 0); - confirmRecordClass(recs, ix-1, FormulaRecord.class); - confirmRecordClass(recs, ix+1, FormulaRecord.class); - confirmRecordClass(recs, ix+2, FormulaRecord.class); - confirmRecordClass(recs, ix+3, FormulaRecord.class); - // just one array record - assertTrue(findRecordOfType(recs, ArrayRecord.class, ix+1) < 0); - - s.removeArrayFormula(cr.getTopLeftCell()); - - // Make sure the array formula has been removed properly - - recs = RecordInspector.getRecords(s, 0); - assertTrue(findRecordOfType(recs, ArrayRecord.class, 0) < 0); - assertTrue(findRecordOfType(recs, FormulaRecord.class, 0) < 0); - RowRecordsAggregate rra = s.getSheet().getRowsAggregate(); - SharedValueManager svm = TestSharedValueManager.extractFromRRA(rra); - if (svm.getArrayRecord(4, 1) != null) { - fail("Array record was not cleaned up properly."); - } - - wb.close(); - } + try (HSSFWorkbook wb = new HSSFWorkbook()) { + HSSFSheet s = wb.createSheet("Sheet1"); - private static void confirmRecordClass(Record[] recs, int index, Class<? extends Record> cls) { - if (recs.length <= index) { - fail("Expected (" + cls.getName() + ") at index " - + index + " but array length is " + recs.length + "."); - } - assertEquals(cls, recs[index].getClass()); - } - /** - * @return <tt>-1<tt> if not found - */ - private static int findRecordOfType(Record[] recs, Class<?> type, int fromIndex) { - for (int i=fromIndex; i<recs.length; i++) { - if (type.isInstance(recs[i])) { - return i; + CellRange<HSSFCell> cr = s.setArrayFormula("123", CellRangeAddress.valueOf("B5:C6")); + List<Record> recs = new ArrayList<>(); + s.getSheet().visitContainedRecords(recs::add, 0); + + int ix = 0; + for (Record r : recs) { + if (r instanceof ArrayRecord) break; + ix++; } + + assertNotEquals(ix, recs.size()); + Class<?>[] act = recs.subList(ix-1, ix+4).stream().map(Object::getClass).toArray(Class[]::new); + Class<?>[] exp = { FormulaRecord.class, ArrayRecord.class, FormulaRecord.class, FormulaRecord.class, FormulaRecord.class }; + assertArrayEquals(exp, act); + + // just one array record + assertFalse(recs.subList(ix + 1, recs.size()).stream().anyMatch(r -> r instanceof ArrayRecord)); + + s.removeArrayFormula(cr.getTopLeftCell()); + + // Make sure the array formula has been removed properly + recs.clear(); + s.getSheet().visitContainedRecords(recs::add, 0); + + assertFalse(recs.stream().anyMatch(r -> r instanceof ArrayRecord || r instanceof FormulaRecord)); + RowRecordsAggregate rra = s.getSheet().getRowsAggregate(); + + SharedValueManager svm = POITestCase.getFieldValue(RowRecordsAggregate.class, rra, SharedValueManager.class, "_sharedValueManager"); + assertNull("Array record was not cleaned up properly.", svm.getArrayRecord(4, 1)); } - return -1; } }
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFTextbox.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFTextbox.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFTextbox.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFTextbox.java Fri Dec 27 23:00:13 2019 @@ -17,49 +17,55 @@ package org.apache.poi.hssf.usermodel; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + +import java.io.IOException; + +import org.junit.Test; /** * Test <code>HSSFTextbox</code>. - * - * @author Yegor Kozlov (yegor at apache.org) */ -public final class TestHSSFTextbox extends TestCase{ +public final class TestHSSFTextbox { /** * Test that accessors to horizontal and vertical alignment work properly */ - public void testAlignment() { - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFSheet sh1 = wb.createSheet(); - HSSFPatriarch patriarch = sh1.createDrawingPatriarch(); - - HSSFTextbox textbox = patriarch.createTextbox(new HSSFClientAnchor(0, 0, 0, 0, (short) 1, 1, (short) 6, 4)); - HSSFRichTextString str = new HSSFRichTextString("Hello, World"); - textbox.setString(str); - textbox.setHorizontalAlignment(HSSFTextbox.HORIZONTAL_ALIGNMENT_CENTERED); - textbox.setVerticalAlignment(HSSFTextbox.VERTICAL_ALIGNMENT_CENTER); - - assertEquals(HSSFTextbox.HORIZONTAL_ALIGNMENT_CENTERED, textbox.getHorizontalAlignment()); - assertEquals(HSSFTextbox.VERTICAL_ALIGNMENT_CENTER, textbox.getVerticalAlignment()); + @Test + public void testAlignment() throws IOException { + try (HSSFWorkbook wb = new HSSFWorkbook()) { + HSSFSheet sh1 = wb.createSheet(); + HSSFPatriarch patriarch = sh1.createDrawingPatriarch(); + + HSSFTextbox textbox = patriarch.createTextbox(new HSSFClientAnchor(0, 0, 0, 0, (short) 1, 1, (short) 6, 4)); + HSSFRichTextString str = new HSSFRichTextString("Hello, World"); + textbox.setString(str); + textbox.setHorizontalAlignment(HSSFTextbox.HORIZONTAL_ALIGNMENT_CENTERED); + textbox.setVerticalAlignment(HSSFTextbox.VERTICAL_ALIGNMENT_CENTER); + + assertEquals(HSSFTextbox.HORIZONTAL_ALIGNMENT_CENTERED, textbox.getHorizontalAlignment()); + assertEquals(HSSFTextbox.VERTICAL_ALIGNMENT_CENTER, textbox.getVerticalAlignment()); + } } /** * Excel requires at least one format run in HSSFTextbox. * When inserting text make sure that if font is not set we must set the default one. */ - public void testSetDeafultTextFormat() { - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFSheet sheet = wb.createSheet(); - HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); - - HSSFTextbox textbox1 = patriarch.createTextbox(new HSSFClientAnchor(0,0,0,0,(short)1,1,(short)3,3)); - HSSFRichTextString rt1 = new HSSFRichTextString("Hello, World!"); - assertEquals(0, rt1.numFormattingRuns()); - textbox1.setString(rt1); - - HSSFRichTextString rt2 = textbox1.getString(); - assertEquals(1, rt2.numFormattingRuns()); - assertEquals(HSSFRichTextString.NO_FONT, rt2.getFontOfFormattingRun(0)); + @Test + public void testSetDeafultTextFormat() throws IOException { + try (HSSFWorkbook wb = new HSSFWorkbook()) { + HSSFSheet sheet = wb.createSheet(); + HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); + + HSSFTextbox textbox1 = patriarch.createTextbox(new HSSFClientAnchor(0, 0, 0, 0, (short) 1, 1, (short) 3, 3)); + HSSFRichTextString rt1 = new HSSFRichTextString("Hello, World!"); + assertEquals(0, rt1.numFormattingRuns()); + textbox1.setString(rt1); + + HSSFRichTextString rt2 = textbox1.getString(); + assertEquals(1, rt2.numFormattingRuns()); + assertEquals(HSSFRichTextString.NO_FONT, rt2.getFontOfFormattingRun(0)); + } } } Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java Fri Dec 27 23:00:13 2019 @@ -18,6 +18,7 @@ package org.apache.poi.hssf.usermodel; import static org.apache.poi.POITestCase.assertContains; +import static org.apache.poi.hssf.HSSFTestDataSamples.openSampleWorkbook; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -36,7 +37,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -import junit.framework.AssertionFailedError; import org.apache.poi.POIDataSamples; import org.apache.poi.ddf.EscherBSERecord; import org.apache.poi.hpsf.ClassID; @@ -66,8 +66,6 @@ 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.util.IOUtils; -import org.apache.poi.util.LittleEndian; -import org.apache.poi.util.RecordFormatException; import org.apache.poi.util.TempFile; import org.junit.Ignore; import org.junit.Test; @@ -125,7 +123,7 @@ public final class TestHSSFWorkbook exte Sheet s; // Single chart, two sheets - HSSFWorkbook b1 = HSSFTestDataSamples.openSampleWorkbook("44010-SingleChart.xls"); + HSSFWorkbook b1 = openSampleWorkbook("44010-SingleChart.xls"); assertEquals(2, b1.getNumberOfSheets()); assertEquals("Graph2", b1.getSheetName(1)); s = b1.getSheetAt(1); @@ -142,7 +140,7 @@ public final class TestHSSFWorkbook exte // We've now called getDrawingPatriarch() so // everything will be all screwy // So, start again - HSSFWorkbook b2 = HSSFTestDataSamples.openSampleWorkbook("44010-SingleChart.xls"); + HSSFWorkbook b2 = openSampleWorkbook("44010-SingleChart.xls"); HSSFWorkbook b3 = HSSFTestDataSamples.writeOutAndReadBack(b2); b2.close(); @@ -154,7 +152,7 @@ public final class TestHSSFWorkbook exte b3.close(); // Two charts, three sheets - HSSFWorkbook b4 = HSSFTestDataSamples.openSampleWorkbook("44010-TwoCharts.xls"); + HSSFWorkbook b4 = openSampleWorkbook("44010-TwoCharts.xls"); assertEquals(3, b4.getNumberOfSheets()); s = b4.getSheetAt(1); @@ -175,7 +173,7 @@ public final class TestHSSFWorkbook exte // We've now called getDrawingPatriarch() so // everything will be all screwy // So, start again - HSSFWorkbook b5 = HSSFTestDataSamples.openSampleWorkbook("44010-TwoCharts.xls"); + HSSFWorkbook b5 = openSampleWorkbook("44010-TwoCharts.xls"); Workbook b6 = HSSFTestDataSamples.writeOutAndReadBack(b5); b5.close(); @@ -404,7 +402,7 @@ public final class TestHSSFWorkbook exte */ @Test public void namesToDeleteSheets() throws IOException { - HSSFWorkbook b = HSSFTestDataSamples.openSampleWorkbook("30978-deleted.xls"); + HSSFWorkbook b = openSampleWorkbook("30978-deleted.xls"); assertEquals(3, b.getNumberOfNames()); // Sheet 2 is deleted @@ -515,13 +513,10 @@ public final class TestHSSFWorkbook exte * The sample file provided with bug 45582 seems to have one extra byte after the EOFRecord */ @Test - public void extraDataAfterEOFRecord() { - try { - HSSFTestDataSamples.openSampleWorkbook("ex45582-22397.xls"); - } catch (RecordFormatException e) { - if (e.getCause() instanceof LittleEndian.BufferUnderrunException) { - throw new AssertionFailedError("Identified bug 45582"); - } + public void extraDataAfterEOFRecord() throws IOException { + // bug 45582 - RecordFormatException - getCause() instanceof LittleEndian.BufferUnderrunException + try (HSSFWorkbook wb = openSampleWorkbook("ex45582-22397.xls")) { + assertNotNull(wb); } } @@ -533,7 +528,7 @@ public final class TestHSSFWorkbook exte public void findBuiltInNameRecord() throws IOException { // testRRaC has multiple (3) built-in name records // The second print titles name record has getSheetNumber()==4 - HSSFWorkbook wb1 = HSSFTestDataSamples.openSampleWorkbook("testRRaC.xls"); + HSSFWorkbook wb1 = openSampleWorkbook("testRRaC.xls"); NameRecord nr; assertEquals(3, wb1.getWorkbook().getNumNames()); nr = wb1.getWorkbook().getNameRecord(2); @@ -793,7 +788,7 @@ public final class TestHSSFWorkbook exte @Test public void clonePictures() throws IOException { - HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("SimpleWithImages.xls"); + HSSFWorkbook wb = openSampleWorkbook("SimpleWithImages.xls"); InternalWorkbook iwb = wb.getWorkbook(); iwb.findDrawingGroup(); @@ -937,7 +932,7 @@ public final class TestHSSFWorkbook exte @Test public void bug50298() throws Exception { - HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("50298.xls"); + HSSFWorkbook wb = openSampleWorkbook("50298.xls"); assertSheetOrder(wb, "Invoice", "Invoice1", "Digest", "Deferred", "Received"); @@ -972,7 +967,7 @@ public final class TestHSSFWorkbook exte @Test public void bug50298a() throws Exception { - HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("50298.xls"); + HSSFWorkbook wb = openSampleWorkbook("50298.xls"); assertSheetOrder(wb, "Invoice", "Invoice1", "Digest", "Deferred", "Received"); @@ -1017,7 +1012,7 @@ public final class TestHSSFWorkbook exte public void bug54500() throws Exception { String nameName = "AName"; String sheetName = "ASheet"; - HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("54500.xls"); + HSSFWorkbook wb = openSampleWorkbook("54500.xls"); assertSheetOrder(wb, "Sheet1", "Sheet2", "Sheet3"); @@ -1071,7 +1066,7 @@ public final class TestHSSFWorkbook exte @Test public void test49423() throws Exception { - HSSFWorkbook workbook = HSSFTestDataSamples.openSampleWorkbook("49423.xls"); + HSSFWorkbook workbook = openSampleWorkbook("49423.xls"); boolean found = false; int numSheets = workbook.getNumberOfSheets(); Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestMatrixFormulasFromBinarySpreadsheet.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestMatrixFormulasFromBinarySpreadsheet.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestMatrixFormulasFromBinarySpreadsheet.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestMatrixFormulasFromBinarySpreadsheet.java Fri Dec 27 23:00:13 2019 @@ -45,8 +45,6 @@ import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameter; import org.junit.runners.Parameterized.Parameters; -import junit.framework.AssertionFailedError; - @RunWith(Parameterized.class) public final class TestMatrixFormulasFromBinarySpreadsheet { @@ -57,16 +55,16 @@ public final class TestMatrixFormulasFro private static Sheet sheet; private static FormulaEvaluator evaluator; private static Locale userLocale; - + /* * Unlike TestFormulaFromSpreadsheet which this class is modified from, there is no * differentiation between operators and functions, if more functionality is implemented with * array formulas then it might be worth it to separate operators from functions - * + * * Also, output matrices are statically 3x3, if larger matrices wanted to be tested * then adding matrix size parameter would be useful and parsing would be based off that. */ - + private static interface Navigator { /** * Name of the test spreadsheet (found in the standard test data folder) @@ -96,21 +94,21 @@ public final class TestMatrixFormulasFro * Used to indicate when there are no more operations left */ String END_OF_TESTS = "<END>"; - + } - + /* Parameters for test case */ @Parameter(0) public String targetFunctionName; @Parameter(1) public int formulasRowIdx; - + @AfterClass public static void closeResource() throws Exception { LocaleUtil.setUserLocale(userLocale); workbook.close(); } - + /* generating parameter instances */ @Parameters(name="{0}") public static Collection<Object[]> data() throws Exception { @@ -119,18 +117,18 @@ public final class TestMatrixFormulasFro // already set, when we would try to change the locale by then userLocale = LocaleUtil.getUserLocale(); LocaleUtil.setUserLocale(Locale.ROOT); - + workbook = HSSFTestDataSamples.openSampleWorkbook(Navigator.FILENAME); sheet = workbook.getSheetAt(0); evaluator = new HSSFFormulaEvaluator(workbook); - + List<Object[]> data = new ArrayList<Object[]>(); - + processFunctionGroup(data, Navigator.START_OPERATORS_ROW_INDEX, null); - + return data; } - + /** * @param startRowIndex row index in the spreadsheet where the first function/operator is found * @param testFocusFunctionName name of a single function/operator to test alone. @@ -152,7 +150,7 @@ public final class TestMatrixFormulasFro } } } - + @Test public void processFunctionRow() { @@ -161,27 +159,27 @@ public final class TestMatrixFormulasFro for (int rowNum = formulasRowIdx; rowNum < formulasRowIdx + Navigator.ROW_OFF_NEXT_OP - 1; rowNum++) { for (int colNum = Navigator.START_RESULT_COL_INDEX; colNum < endColNum; colNum++) { Row r = sheet.getRow(rowNum); - + /* mainly to escape row failures on MDETERM which only returns a scalar */ if (r == null) { continue; } - + Cell c = sheet.getRow(rowNum).getCell(colNum); - + if (c == null || c.getCellType() != CellType.FORMULA) { continue; } - + CellValue actValue = evaluator.evaluate(c); Cell expValue = sheet.getRow(rowNum).getCell(colNum + Navigator.COL_OFF_EXPECTED_RESULT); - + String msg = String.format(Locale.ROOT, "Function '%s': Formula: %s @ %d:%d" , targetFunctionName, c.getCellFormula(), rowNum, colNum); - + assertNotNull(msg + " - Bad setup data expected value is null", expValue); assertNotNull(msg + " - actual value was null", actValue); - + final CellType cellType = expValue.getCellType(); switch (cellType) { case BLANK: @@ -211,7 +209,7 @@ public final class TestMatrixFormulasFro } } } - + /** * @return <code>null</code> if cell is missing, empty or blank */ @@ -235,13 +233,13 @@ public final class TestMatrixFormulasFro return cell.getRichStringCellValue().getString(); } - throw new AssertionFailedError("Bad cell type for 'function name' column: (" - + cell.getCellType() + ") row (" + (r.getRowNum() +1) + ")"); + fail("Bad cell type for 'function name' column: (" + cell.getCellType() + ") row (" + (r.getRowNum() +1) + ")"); + return ""; } - - - - - + + + + + } Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestPatriarch.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestPatriarch.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestPatriarch.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestPatriarch.java Fri Dec 27 23:00:13 2019 @@ -17,17 +17,18 @@ package org.apache.poi.hssf.usermodel; -import junit.framework.TestCase; +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 org.apache.poi.ddf.EscherDgRecord; import org.apache.poi.hssf.HSSFTestDataSamples; import org.apache.poi.hssf.record.EscherAggregate; +import org.junit.Test; -/** - * @author Evgeniy Berlog - * @date 01.08.12 - */ -public class TestPatriarch extends TestCase { - +public class TestPatriarch { + @Test public void testGetPatriarch(){ HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sh = wb.createSheet(); @@ -43,15 +44,17 @@ public class TestPatriarch extends TestC EscherAggregate agg = patriarch.getBoundAggregate(); EscherDgRecord dg = agg.getEscherContainer().getChildById(EscherDgRecord.RECORD_ID); + assertNotNull(dg); int lastId = dg.getLastMSOSPID(); - + assertSame(patriarch, sh.createDrawingPatriarch()); - + wb = HSSFTestDataSamples.writeOutAndReadBack(wb); sh = wb.getSheetAt(0); patriarch = sh.createDrawingPatriarch(); dg = patriarch.getBoundAggregate().getEscherContainer().getChildById(EscherDgRecord.RECORD_ID); + assertNotNull(dg); assertEquals(lastId, dg.getLastMSOSPID()); } } Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestRowStyle.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestRowStyle.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestRowStyle.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestRowStyle.java Fri Dec 27 23:00:13 2019 @@ -14,22 +14,23 @@ See the License for the specific language governing permissions and limitations under the License. ==================================================================== */ - + package org.apache.poi.hssf.usermodel; -import org.apache.poi.hssf.HSSFTestDataSamples; +import static org.apache.poi.hssf.HSSFTestDataSamples.writeOutAndReadBack; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.io.IOException; + import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.FillPatternType; -import org.apache.poi.util.IOUtils; - -import junit.framework.TestCase; +import org.junit.Test; /** * Class to test row styling functionality - * - * @author Amol S. Deshmukh < amolweb at ya hoo dot com > */ -public final class TestRowStyle extends TestCase { +public final class TestRowStyle { /** * TEST NAME: Test Write Sheet Font <P> @@ -39,62 +40,60 @@ public final class TestRowStyle extends * FAILURE: HSSF does not create a sheet or excepts. Filesize does not match the known good. * HSSFSheet last row or first row is incorrect. <P> */ - public void testWriteSheetFont() { - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFSheet s = wb.createSheet(); - HSSFRow r = null; - HSSFFont fnt = wb.createFont(); - HSSFCellStyle cs = wb.createCellStyle(); - - fnt.setColor(HSSFFont.COLOR_RED); - fnt.setBold(true); - cs.setFont(fnt); - for (int rownum = 0; rownum < 100; rownum++) - { - r = s.createRow(rownum); - r.setRowStyle(cs); - r.createCell(0); + @Test + public void testWriteSheetFont() throws IOException { + try (HSSFWorkbook wb = new HSSFWorkbook()) { + HSSFSheet s = wb.createSheet(); + HSSFFont fnt = wb.createFont(); + HSSFCellStyle cs = wb.createCellStyle(); + + fnt.setColor(HSSFFont.COLOR_RED); + fnt.setBold(true); + cs.setFont(fnt); + for (int rownum = 0; rownum < 100; rownum++) { + HSSFRow r = s.createRow(rownum); + r.setRowStyle(cs); + r.createCell(0); + } + try (HSSFWorkbook wb2 = writeOutAndReadBack(wb)) { + SanityChecker sanityChecker = new SanityChecker(); + sanityChecker.checkHSSFWorkbook(wb2); + assertEquals("LAST ROW == 99", 99, s.getLastRowNum()); + assertEquals("FIRST ROW == 0", 0, s.getFirstRowNum()); + } } - HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb); - IOUtils.closeQuietly(wb); - - SanityChecker sanityChecker = new SanityChecker(); - sanityChecker.checkHSSFWorkbook(wb2); - assertEquals("LAST ROW == 99", 99, s.getLastRowNum()); - assertEquals("FIRST ROW == 0", 0, s.getFirstRowNum()); - IOUtils.closeQuietly(wb2); } /** * Tests that is creating a file with a date or an calendar works correctly. */ - public void testDataStyle() { - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFSheet s = wb.createSheet(); - HSSFCellStyle cs = wb.createCellStyle(); - HSSFRow row = s.createRow(0); - - // with Date: - cs.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy")); - row.setRowStyle(cs); - row.createCell(0); - - - // with Calendar: - row = s.createRow(1); - cs.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy")); - row.setRowStyle(cs); - row.createCell(0); - - HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb); - IOUtils.closeQuietly(wb); - - SanityChecker sanityChecker = new SanityChecker(); - sanityChecker.checkHSSFWorkbook(wb2); - - assertEquals("LAST ROW ", 1, s.getLastRowNum()); - assertEquals("FIRST ROW ", 0, s.getFirstRowNum()); - IOUtils.closeQuietly(wb2); + @Test + public void testDataStyle() throws IOException { + try (HSSFWorkbook wb = new HSSFWorkbook()) { + HSSFSheet s = wb.createSheet(); + HSSFCellStyle cs = wb.createCellStyle(); + HSSFRow row = s.createRow(0); + + // with Date: + cs.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy")); + row.setRowStyle(cs); + row.createCell(0); + + + // with Calendar: + row = s.createRow(1); + cs.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy")); + row.setRowStyle(cs); + row.createCell(0); + + try (HSSFWorkbook wb2 = writeOutAndReadBack(wb)) { + SanityChecker sanityChecker = new SanityChecker(); + sanityChecker.checkHSSFWorkbook(wb2); + + assertEquals("LAST ROW ", 1, s.getLastRowNum()); + assertEquals("FIRST ROW ", 0, s.getFirstRowNum()); + } + } } /** @@ -106,71 +105,71 @@ public final class TestRowStyle extends * FAILURE: HSSF does not create a sheet or excepts. Filesize does not match the known good. * HSSFSheet last row or first row is incorrect. <P> */ - public void testWriteSheetStyle() { - HSSFWorkbook wb = new HSSFWorkbook(); - HSSFSheet s = wb.createSheet(); - HSSFRow r = null; - HSSFFont fnt = wb.createFont(); - HSSFCellStyle cs = wb.createCellStyle(); - HSSFCellStyle cs2 = wb.createCellStyle(); - - cs.setBorderBottom(BorderStyle.THIN); - cs.setBorderLeft(BorderStyle.THIN); - cs.setBorderRight(BorderStyle.THIN); - cs.setBorderTop(BorderStyle.THIN); - cs.setFillForegroundColor(( short ) 0xA); - cs.setFillPattern(FillPatternType.BRICKS); - fnt.setColor(( short ) 0xf); - fnt.setItalic(true); - cs2.setFillForegroundColor(( short ) 0x0); - cs2.setFillPattern(FillPatternType.BRICKS); - cs2.setFont(fnt); - for (int rownum = 0; rownum < 100; rownum++) - { - r = s.createRow(rownum); - r.setRowStyle(cs); - r.createCell(0); - - rownum++; - if (rownum >= 100) break; // I feel too lazy to check if this isreqd :-/ - - r = s.createRow(rownum); - r.setRowStyle(cs2); - r.createCell(0); - } - HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb); - IOUtils.closeQuietly(wb); - - SanityChecker sanityChecker = new SanityChecker(); - sanityChecker.checkHSSFWorkbook(wb2); - assertEquals("LAST ROW == 99", 99, s.getLastRowNum()); - assertEquals("FIRST ROW == 0", 0, s.getFirstRowNum()); - - s = wb2.getSheetAt(0); - assertNotNull("Sheet is not null", s); - - for (int rownum = 0; rownum < 100; rownum++) - { - r = s.getRow(rownum); - assertNotNull("Row is not null", r); - - cs = r.getRowStyle(); - assertEquals("Bottom Border Style for row:", BorderStyle.THIN, cs.getBorderBottom()); - assertEquals("Left Border Style for row:", BorderStyle.THIN, cs.getBorderLeft()); - assertEquals("Right Border Style for row:", BorderStyle.THIN, cs.getBorderRight()); - assertEquals("Top Border Style for row:", BorderStyle.THIN, cs.getBorderTop()); - assertEquals("FillForegroundColor for row:", 0xA, cs.getFillForegroundColor()); - assertEquals("FillPattern for row:", FillPatternType.BRICKS, cs.getFillPattern()); - - rownum++; - if (rownum >= 100) break; // I feel too lazy to check if this isreqd :-/ - - r = s.getRow(rownum); - assertNotNull("Row is not null", r); - cs2 = r.getRowStyle(); - assertEquals("FillForegroundColor for row: ", cs2.getFillForegroundColor(), (short) 0x0); - assertEquals("FillPattern for row: ", cs2.getFillPattern(), FillPatternType.BRICKS); + @Test + public void testWriteSheetStyle() throws IOException { + try (HSSFWorkbook wb = new HSSFWorkbook()) { + HSSFSheet s = wb.createSheet(); + HSSFRow r = null; + HSSFFont fnt = wb.createFont(); + HSSFCellStyle cs = wb.createCellStyle(); + HSSFCellStyle cs2 = wb.createCellStyle(); + + cs.setBorderBottom(BorderStyle.THIN); + cs.setBorderLeft(BorderStyle.THIN); + cs.setBorderRight(BorderStyle.THIN); + cs.setBorderTop(BorderStyle.THIN); + cs.setFillForegroundColor((short) 0xA); + cs.setFillPattern(FillPatternType.BRICKS); + fnt.setColor((short) 0xf); + fnt.setItalic(true); + cs2.setFillForegroundColor((short) 0x0); + cs2.setFillPattern(FillPatternType.BRICKS); + cs2.setFont(fnt); + for (int rownum = 0; rownum < 100; rownum++) { + r = s.createRow(rownum); + r.setRowStyle(cs); + r.createCell(0); + + rownum++; + if (rownum >= 100) break; // I feel too lazy to check if this isreqd :-/ + + r = s.createRow(rownum); + r.setRowStyle(cs2); + r.createCell(0); + } + try (HSSFWorkbook wb2 = writeOutAndReadBack(wb)) { + SanityChecker sanityChecker = new SanityChecker(); + sanityChecker.checkHSSFWorkbook(wb2); + assertEquals("LAST ROW == 99", 99, s.getLastRowNum()); + assertEquals("FIRST ROW == 0", 0, s.getFirstRowNum()); + + s = wb2.getSheetAt(0); + assertNotNull("Sheet is not null", s); + + for (int rownum = 0; rownum < 100; rownum++) { + r = s.getRow(rownum); + assertNotNull("Row is not null", r); + + cs = r.getRowStyle(); + assertNotNull(cs); + assertEquals("Bottom Border Style for row:", BorderStyle.THIN, cs.getBorderBottom()); + assertEquals("Left Border Style for row:", BorderStyle.THIN, cs.getBorderLeft()); + assertEquals("Right Border Style for row:", BorderStyle.THIN, cs.getBorderRight()); + assertEquals("Top Border Style for row:", BorderStyle.THIN, cs.getBorderTop()); + assertEquals("FillForegroundColor for row:", 0xA, cs.getFillForegroundColor()); + assertEquals("FillPattern for row:", FillPatternType.BRICKS, cs.getFillPattern()); + + rownum++; + if (rownum >= 100) break; // I feel too lazy to check if this isreqd :-/ + + r = s.getRow(rownum); + assertNotNull("Row is not null", r); + cs2 = r.getRowStyle(); + assertNotNull(cs2); + assertEquals("FillForegroundColor for row: ", cs2.getFillForegroundColor(), (short) 0x0); + assertEquals("FillPattern for row: ", cs2.getFillPattern(), FillPatternType.BRICKS); + } + } } - IOUtils.closeQuietly(wb2); } } Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestUnicodeWorkbook.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestUnicodeWorkbook.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestUnicodeWorkbook.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestUnicodeWorkbook.java Fri Dec 27 23:00:13 2019 @@ -17,36 +17,44 @@ package org.apache.poi.hssf.usermodel; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.io.IOException; + import org.apache.poi.hssf.HSSFTestDataSamples; +import org.junit.Test; -public final class TestUnicodeWorkbook extends TestCase { +public final class TestUnicodeWorkbook { /** * Tests Bug38230 * That a Umlat is written and then read back. * It should have been written as a compressed unicode. */ - public void testUmlatReadWrite() { - HSSFWorkbook wb = new HSSFWorkbook(); - - //Create a unicode sheet name (euro symbol) - HSSFSheet s = wb.createSheet("test"); - - HSSFRow r = s.createRow(0); - HSSFCell c = r.createCell(1); - c.setCellValue(new HSSFRichTextString("\u00e4")); - - //Confirm that the sring will be compressed - assertEquals(c.getRichStringCellValue().getUnicodeString().getOptionFlags(), 0); - - wb = HSSFTestDataSamples.writeOutAndReadBack(wb); - - //Test the sheetname - s = wb.getSheet("test"); - assertNotNull(s); - - c = r.getCell(1); - assertEquals(c.getRichStringCellValue().getString(), "\u00e4"); + @Test + public void testUmlatReadWrite() throws IOException { + try (HSSFWorkbook wb1 = new HSSFWorkbook()) { + + //Create a unicode sheet name (euro symbol) + HSSFSheet s = wb1.createSheet("test"); + + HSSFRow r = s.createRow(0); + HSSFCell c = r.createCell(1); + c.setCellValue(new HSSFRichTextString("\u00e4")); + + //Confirm that the sring will be compressed + assertEquals(c.getRichStringCellValue().getUnicodeString().getOptionFlags(), 0); + + try (HSSFWorkbook wb = HSSFTestDataSamples.writeOutAndReadBack(wb1)) { + + //Test the sheetname + s = wb.getSheet("test"); + assertNotNull(s); + + c = r.getCell(1); + assertEquals(c.getRichStringCellValue().getString(), "\u00e4"); + } + } } } Modified: poi/trunk/src/testcases/org/apache/poi/hssf/util/TestAreaReference.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/util/TestAreaReference.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/util/TestAreaReference.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/util/TestAreaReference.java Fri Dec 27 23:00:13 2019 @@ -17,19 +17,19 @@ package org.apache.poi.hssf.util; -import java.io.InputStream; +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.Assert.assertTrue; +import static org.junit.Assert.fail; -import junit.framework.TestCase; +import java.io.InputStream; import org.apache.poi.hssf.HSSFTestDataSamples; import org.apache.poi.hssf.model.HSSFFormulaParser; import org.apache.poi.hssf.model.InternalWorkbook; import org.apache.poi.hssf.record.NameRecord; -import org.apache.poi.ss.SpreadsheetVersion; -import org.apache.poi.ss.formula.ptg.Area3DPtg; -import org.apache.poi.ss.formula.ptg.MemFuncPtg; -import org.apache.poi.ss.formula.ptg.Ptg; -import org.apache.poi.ss.formula.ptg.UnionPtg; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFEvaluationWorkbook; import org.apache.poi.hssf.usermodel.HSSFName; @@ -37,11 +37,18 @@ import org.apache.poi.hssf.usermodel.HSS import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.TestHSSFWorkbook; +import org.apache.poi.ss.SpreadsheetVersion; +import org.apache.poi.ss.formula.ptg.Area3DPtg; +import org.apache.poi.ss.formula.ptg.MemFuncPtg; +import org.apache.poi.ss.formula.ptg.Ptg; +import org.apache.poi.ss.formula.ptg.UnionPtg; import org.apache.poi.ss.util.AreaReference; import org.apache.poi.ss.util.CellReference; +import org.junit.Test; -public final class TestAreaReference extends TestCase { +public final class TestAreaReference { + @Test public void testAreaRef1() { AreaReference ar = new AreaReference("$A$1:$B$2", SpreadsheetVersion.EXCEL97); assertFalse("Two cells expected", ar.isSingleCell()); @@ -83,6 +90,7 @@ public final class TestAreaReference ext * References failed when sheet names were being used * Reported by arne.cla...@gedas.de */ + @Test public void testReferenceWithSheet() { AreaReference ar; @@ -107,6 +115,7 @@ public final class TestAreaReference ext TestCellReference.confirmCell(allCells[2], "Tabelle1", 6, 1, true, true, "Tabelle1!$B$7"); } + @Test public void testContiguousReferences() { String refSimple = "$C$10:$C$10"; String ref2D = "$C$10:$D$11"; @@ -186,69 +195,72 @@ public final class TestAreaReference ext assertEquals("Tabelle1", refs[1].getLastCell().getSheetName()); } + @Test public void testDiscontinousReference() throws Exception { - InputStream is = HSSFTestDataSamples.openSampleFileStream("44167.xls"); - HSSFWorkbook wb = new HSSFWorkbook(is); - InternalWorkbook workbook = TestHSSFWorkbook.getInternalWorkbook(wb); - HSSFEvaluationWorkbook eb = HSSFEvaluationWorkbook.create(wb); - - assertEquals(1, wb.getNumberOfNames()); - String sheetName = "Tabelle1"; - String rawRefA = "$C$10:$C$14"; - String rawRefB = "$C$16:$C$18"; - String refA = sheetName + "!" + rawRefA; - String refB = sheetName + "!" + rawRefB; - String ref = refA + "," + refB; - - // Check the low level record - NameRecord nr = workbook.getNameRecord(0); - assertNotNull(nr); - assertEquals("test", nr.getNameText()); - - Ptg[] def =nr.getNameDefinition(); - assertEquals(4, def.length); - - MemFuncPtg ptgA = (MemFuncPtg)def[0]; - Area3DPtg ptgB = (Area3DPtg)def[1]; - Area3DPtg ptgC = (Area3DPtg)def[2]; - UnionPtg ptgD = (UnionPtg)def[3]; - assertEquals("", ptgA.toFormulaString()); - assertEquals(refA, ptgB.toFormulaString(eb)); - assertEquals(refB, ptgC.toFormulaString(eb)); - assertEquals(",", ptgD.toFormulaString()); - - assertEquals(ref, HSSFFormulaParser.toFormulaString(wb, nr.getNameDefinition())); - - // Check the high level definition - int idx = wb.getNameIndex("test"); - assertEquals(0, idx); - HSSFName aNamedCell = wb.getNameAt(idx); - - // Should have 2 references - String formulaRefs = aNamedCell.getRefersToFormula(); - assertNotNull(formulaRefs); - assertEquals(ref, formulaRefs); - - // Check the parsing of the reference into cells - assertFalse(AreaReference.isContiguous(formulaRefs)); - AreaReference[] arefs = AreaReference.generateContiguous(SpreadsheetVersion.EXCEL97, formulaRefs); - assertEquals(2, arefs.length); - assertEquals(refA, arefs[0].formatAsString()); - assertEquals(refB, arefs[1].formatAsString()); - - for (AreaReference ar : arefs) { - confirmResolveCellRef(wb, ar.getFirstCell()); - confirmResolveCellRef(wb, ar.getLastCell()); + try (InputStream is = HSSFTestDataSamples.openSampleFileStream("44167.xls"); + HSSFWorkbook wb = new HSSFWorkbook(is)) { + InternalWorkbook workbook = TestHSSFWorkbook.getInternalWorkbook(wb); + HSSFEvaluationWorkbook eb = HSSFEvaluationWorkbook.create(wb); + + assertEquals(1, wb.getNumberOfNames()); + String sheetName = "Tabelle1"; + String rawRefA = "$C$10:$C$14"; + String rawRefB = "$C$16:$C$18"; + String refA = sheetName + "!" + rawRefA; + String refB = sheetName + "!" + rawRefB; + String ref = refA + "," + refB; + + // Check the low level record + NameRecord nr = workbook.getNameRecord(0); + assertNotNull(nr); + assertEquals("test", nr.getNameText()); + + Ptg[] def = nr.getNameDefinition(); + assertEquals(4, def.length); + + MemFuncPtg ptgA = (MemFuncPtg) def[0]; + Area3DPtg ptgB = (Area3DPtg) def[1]; + Area3DPtg ptgC = (Area3DPtg) def[2]; + UnionPtg ptgD = (UnionPtg) def[3]; + assertEquals("", ptgA.toFormulaString()); + assertEquals(refA, ptgB.toFormulaString(eb)); + assertEquals(refB, ptgC.toFormulaString(eb)); + assertEquals(",", ptgD.toFormulaString()); + + assertEquals(ref, HSSFFormulaParser.toFormulaString(wb, nr.getNameDefinition())); + + // Check the high level definition + int idx = wb.getNameIndex("test"); + assertEquals(0, idx); + HSSFName aNamedCell = wb.getNameAt(idx); + + // Should have 2 references + String formulaRefs = aNamedCell.getRefersToFormula(); + assertNotNull(formulaRefs); + assertEquals(ref, formulaRefs); + + // Check the parsing of the reference into cells + assertFalse(AreaReference.isContiguous(formulaRefs)); + AreaReference[] arefs = AreaReference.generateContiguous(SpreadsheetVersion.EXCEL97, formulaRefs); + assertEquals(2, arefs.length); + assertEquals(refA, arefs[0].formatAsString()); + assertEquals(refB, arefs[1].formatAsString()); + + for (AreaReference ar : arefs) { + confirmResolveCellRef(wb, ar.getFirstCell()); + confirmResolveCellRef(wb, ar.getLastCell()); + } } } private static void confirmResolveCellRef(HSSFWorkbook wb, CellReference cref) { HSSFSheet s = wb.getSheet(cref.getSheetName()); HSSFRow r = s.getRow(cref.getRow()); - HSSFCell c = r.getCell((int)cref.getCol()); + HSSFCell c = r.getCell(cref.getCol()); assertNotNull(c); } + @Test public void testSpecialSheetNames() { AreaReference ar; ar = new AreaReference("'Sheet A'!A1:A1", SpreadsheetVersion.EXCEL97); @@ -270,20 +282,20 @@ public final class TestAreaReference ext assertEquals(expectedFullText, ar.formatAsString()); } + @Test public void testWholeColumnRefs() { confirmWholeColumnRef("A:A", 0, 0, false, false); confirmWholeColumnRef("$C:D", 2, 3, true, false); confirmWholeColumnRef("AD:$AE", 29, 30, false, true); } - + private static void confirmWholeColumnRef(String ref, int firstCol, int lastCol, boolean firstIsAbs, boolean lastIsAbs) { AreaReference ar = new AreaReference(ref, SpreadsheetVersion.EXCEL97); confirmCell(ar.getFirstCell(), 0, firstCol, true, firstIsAbs); confirmCell(ar.getLastCell(), 0xFFFF, lastCol, true, lastIsAbs); } - private static void confirmCell(CellReference cell, int row, int col, boolean isRowAbs, - boolean isColAbs) { + private static void confirmCell(CellReference cell, int row, int col, boolean isRowAbs, boolean isColAbs) { assertEquals(row, cell.getRow()); assertEquals(col, cell.getCol()); assertEquals(isRowAbs, cell.isRowAbsolute()); Modified: poi/trunk/src/testcases/org/apache/poi/hssf/util/TestRKUtil.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/util/TestRKUtil.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/util/TestRKUtil.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/util/TestRKUtil.java Fri Dec 27 23:00:13 2019 @@ -17,24 +17,26 @@ package org.apache.poi.hssf.util; -import junit.framework.AssertionFailedError; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + +import org.junit.Test; /** * Tests the {@link RKUtil} class. */ -public final class TestRKUtil extends TestCase { +public final class TestRKUtil { /** * Check we can decode correctly. */ + @Test public void testDecode() { - int[] values = { 1074266112, 1081384961, 1081397249, + int[] values = { 1074266112, 1081384961, 1081397249, 0x3FF00000, 0x405EC001, 0x02F1853A, 0x02F1853B, 0xFCDD699A, }; double[] rvalues = { 3.0, 3.3, 3.33, - 1, 1.23, 12345678, 123456.78, -13149594, + 1, 1.23, 12345678, 123456.78, -13149594, }; for (int j = 0; j < values.length; j++) { @@ -42,10 +44,7 @@ public final class TestRKUtil extends Te int intBits = values[j]; double expectedValue = rvalues[j]; double actualValue = RKUtil.decodeNumber(intBits); - if (expectedValue != actualValue) { - throw new AssertionFailedError("0x" + Integer.toHexString(intBits) - + " should decode to " + expectedValue + " but got " + actualValue); - } + assertEquals(expectedValue, actualValue, 0); } } } Modified: poi/trunk/src/testcases/org/apache/poi/poifs/crypt/TestBiff8DecryptingStream.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/poifs/crypt/TestBiff8DecryptingStream.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/poifs/crypt/TestBiff8DecryptingStream.java (original) +++ poi/trunk/src/testcases/org/apache/poi/poifs/crypt/TestBiff8DecryptingStream.java Fri Dec 27 23:00:13 2019 @@ -17,11 +17,11 @@ package org.apache.poi.poifs.crypt; +import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; import java.io.InputStream; -import java.util.Arrays; import javax.crypto.spec.SecretKeySpec; @@ -30,9 +30,6 @@ import org.apache.poi.util.HexDump; import org.apache.poi.util.HexRead; import org.junit.Test; -import junit.framework.AssertionFailedError; -import junit.framework.ComparisonFailure; - /** * Tests for {@link Biff8DecryptingStream} */ @@ -58,25 +55,19 @@ public final class TestBiff8DecryptingSt } private static final class StreamTester { - private static final boolean ONLY_LOG_ERRORS = true; - - private final MockStream _ms; private final Biff8DecryptingStream _bds; - private boolean _errorsOccurred; /** * @param expectedFirstInt expected value of the first int read from the decrypted stream */ public StreamTester(MockStream ms, String keyDigestHex, int expectedFirstInt) { - _ms = ms; byte[] keyDigest = HexRead.readFromString(keyDigestHex); EncryptionInfo ei = new EncryptionInfo(EncryptionMode.binaryRC4); Decryptor dec = ei.getDecryptor(); dec.setSecretKey(new SecretKeySpec(keyDigest, "RC4")); - - _bds = new Biff8DecryptingStream(_ms, 0, ei); + + _bds = new Biff8DecryptingStream(ms, 0, ei); assertEquals(expectedFirstInt, _bds.readInt()); - _errorsOccurred = false; } public Biff8DecryptingStream getBDS() { @@ -106,7 +97,7 @@ public final class TestBiff8DecryptingSt public void confirmUShort(int expVal) { assertEquals(HexDump.shortToHex(expVal), HexDump.shortToHex(_bds.readUShort())); } - + public short readShort() { return _bds.readShort(); } @@ -122,32 +113,13 @@ public final class TestBiff8DecryptingSt public void confirmLong(long expVal) { assertEquals(HexDump.longToHex(expVal), HexDump.longToHex(_bds.readLong())); } - + public void confirmData(String expHexData) { byte[] expData = HexRead.readFromString(expHexData); byte[] actData = new byte[expData.length]; _bds.readFully(actData); - if (Arrays.equals(expData, actData)) { - return; - } - _errorsOccurred = true; - if (ONLY_LOG_ERRORS) { - logErr(2, "Data mismatch " + HexDump.toHex(expData) + " - " - + HexDump.toHex(actData)); - return; - } - throw new ComparisonFailure("Data mismatch", HexDump.toHex(expData), HexDump.toHex(actData)); - } - - private static void logErr(int stackFrameCount, String msg) { - StackTraceElement ste = new Exception().getStackTrace()[stackFrameCount]; - System.err.print("(" + ste.getFileName() + ":" + ste.getLineNumber() + ") "); - System.err.println(msg); - } - - public void assertNoErrors() { - assertFalse("Some values decrypted incorrectly", _errorsOccurred); + assertArrayEquals("Data mismatch", expData, actData); } } @@ -156,7 +128,7 @@ public final class TestBiff8DecryptingSt */ @Test public void readsAlignedWithBoundary() { - StreamTester st = createStreamTester(0x50, "BA AD F0 0D 00", 0x96C66829); + StreamTester st = createStreamTester(); st.rollForward(0x0004, 0x03FF); st.confirmByte(0x3E); @@ -179,7 +151,6 @@ public final class TestBiff8DecryptingSt assertEquals(0xFFFF, st.readUShort()); st.rollForward(0x37D9B, 0x4A6F2); assertEquals(-1, st.readShort()); - st.assertNoErrors(); } /** @@ -187,7 +158,7 @@ public final class TestBiff8DecryptingSt */ @Test public void readsSpanningBoundary() { - StreamTester st = createStreamTester(0x50, "BA AD F0 0D 00", 0x96C66829); + StreamTester st = createStreamTester(); st.rollForward(0x0004, 0x03FC); st.confirmLong(0x885243283E2A5EEFL); @@ -195,7 +166,6 @@ public final class TestBiff8DecryptingSt st.confirmInt(0xD83E76CC); st.rollForward(0x0802, 0x0BFF); st.confirmShort(0x9B25); - st.assertNoErrors(); } /** @@ -204,28 +174,22 @@ public final class TestBiff8DecryptingSt */ @Test public void readHeaderUShort() { - StreamTester st = createStreamTester(0x50, "BA AD F0 0D 00", 0x96C66829); + StreamTester st = createStreamTester(); st.rollForward(0x0004, 0x03FF); Biff8DecryptingStream bds = st.getBDS(); int hval = bds.readDataSize(); // unencrypted int nextInt = bds.readInt(); - if (nextInt == 0x8F534029) { - throw new AssertionFailedError( - "Indentified bug in key alignment after call to readHeaderUShort()"); - } + assertNotEquals("Indentified bug in key alignment after call to readHeaderUShort()",0x8F534029, nextInt); assertEquals(0x16885243, nextInt); - if (hval == 0x283E) { - throw new AssertionFailedError("readHeaderUShort() incorrectly decrypted result"); - } + assertNotEquals("readHeaderUShort() incorrectly decrypted result", 0x283E, hval); assertEquals(0x504F, hval); // confirm next key change st.rollForward(0x0405, 0x07FC); st.confirmInt(0x76CC1223); st.confirmInt(0x4842D83E); - st.assertNoErrors(); } /** @@ -233,17 +197,16 @@ public final class TestBiff8DecryptingSt */ @Test public void readByteArrays() { - StreamTester st = createStreamTester(0x50, "BA AD F0 0D 00", 0x96C66829); + StreamTester st = createStreamTester(); st.rollForward(0x0004, 0x2FFC); st.confirmData("66 A1 20 B1 04 A3 35 F5"); // 4 bytes on either side of boundary st.rollForward(0x3004, 0x33F8); st.confirmData("F8 97 59 36"); // last 4 bytes in block st.confirmData("01 C2 4E 55"); // first 4 bytes in next block - st.assertNoErrors(); } - private static StreamTester createStreamTester(int mockStreamStartVal, String keyDigestHex, int expectedFirstInt) { - return new StreamTester(new MockStream(mockStreamStartVal), keyDigestHex, expectedFirstInt); + private static StreamTester createStreamTester() { + return new StreamTester(new MockStream(0x50), "BA AD F0 0D 00", 0x96C66829); } } Modified: poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestDirectoryNode.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestDirectoryNode.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestDirectoryNode.java (original) +++ poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestDirectoryNode.java Fri Dec 27 23:00:13 2019 @@ -18,6 +18,12 @@ package org.apache.poi.poifs.filesystem; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + import java.io.ByteArrayInputStream; import java.io.FileNotFoundException; import java.io.IOException; @@ -25,76 +31,71 @@ import java.util.Iterator; import org.apache.poi.poifs.property.DirectoryProperty; import org.apache.poi.poifs.property.DocumentProperty; - -import junit.framework.TestCase; +import org.junit.Test; /** * Class to test DirectoryNode functionality - * - * @author Marc Johnson */ -public final class TestDirectoryNode extends TestCase { +public final class TestDirectoryNode { /** * test trivial constructor (a DirectoryNode with no children) */ - public void testEmptyConstructor() { - POIFSFileSystem fs = new POIFSFileSystem(); - DirectoryProperty property1 = new DirectoryProperty("parent"); - DirectoryProperty property2 = new DirectoryProperty("child"); - DirectoryNode parent = new DirectoryNode(property1, fs, null); - DirectoryNode node = new DirectoryNode(property2, fs, - parent); - - assertEquals(0, parent.getPath().length()); - assertEquals(1, node.getPath().length()); - assertEquals("child", node.getPath().getComponent(0)); - - // verify that getEntries behaves correctly - int count = 0; - Iterator<Entry> iter = node.getEntries(); - - while (iter.hasNext()) - { - count++; - iter.next(); - } - assertEquals(0, count); - - // verify behavior of isEmpty - assertTrue(node.isEmpty()); + @Test + public void testEmptyConstructor() throws IOException { + try (POIFSFileSystem fs = new POIFSFileSystem()) { + DirectoryProperty property1 = new DirectoryProperty("parent"); + DirectoryProperty property2 = new DirectoryProperty("child"); + DirectoryNode parent = new DirectoryNode(property1, fs, null); + DirectoryNode node = new DirectoryNode(property2, fs, parent); + + assertEquals(0, parent.getPath().length()); + assertEquals(1, node.getPath().length()); + assertEquals("child", node.getPath().getComponent(0)); + + // verify that getEntries behaves correctly + int count = 0; + Iterator<Entry> iter = node.getEntries(); + + while (iter.hasNext()) { + count++; + iter.next(); + } + assertEquals(0, count); + + // verify behavior of isEmpty + assertTrue(node.isEmpty()); + + // verify behavior of getEntryCount + assertEquals(0, node.getEntryCount()); + + // verify behavior of getEntry + try { + node.getEntry("foo"); + fail("should have caught FileNotFoundException"); + } catch (FileNotFoundException ignored) { + + // as expected + } + + // verify behavior of isDirectoryEntry + assertTrue(node.isDirectoryEntry()); - // verify behavior of getEntryCount - assertEquals(0, node.getEntryCount()); + // verify behavior of getName + assertEquals(property2.getName(), node.getName()); - // verify behavior of getEntry - try - { - node.getEntry("foo"); - fail("should have caught FileNotFoundException"); - } - catch (FileNotFoundException ignored) - { + // verify behavior of isDocumentEntry + assertFalse(node.isDocumentEntry()); - // as expected + // verify behavior of getParent + assertEquals(parent, node.getParent()); } - - // verify behavior of isDirectoryEntry - assertTrue(node.isDirectoryEntry()); - - // verify behavior of getName - assertEquals(property2.getName(), node.getName()); - - // verify behavior of isDocumentEntry - assertFalse(node.isDocumentEntry()); - - // verify behavior of getParent - assertEquals(parent, node.getParent()); } /** * test non-trivial constructor (a DirectoryNode with children) */ + @Test public void testNonEmptyConstructor() throws IOException { DirectoryProperty property1 = new DirectoryProperty("parent"); DirectoryProperty property2 = new DirectoryProperty("child1"); @@ -102,119 +103,118 @@ public final class TestDirectoryNode ext property1.addChild(property2); property1.addChild(new DocumentProperty("child2", 2000)); property2.addChild(new DocumentProperty("child3", 30000)); - DirectoryNode node = new DirectoryNode(property1, - new POIFSFileSystem(), null); - // verify that getEntries behaves correctly - int count = 0; - Iterator<Entry> iter = node.getEntries(); - - while (iter.hasNext()) - { - count++; - iter.next(); - } - assertEquals(2, count); + try (POIFSFileSystem fs = new POIFSFileSystem()) { + DirectoryNode node = new DirectoryNode(property1, fs, null); - // verify behavior of isEmpty - assertFalse(node.isEmpty()); + // verify that getEntries behaves correctly + int count = 0; + Iterator<Entry> iter = node.getEntries(); - // verify behavior of getEntryCount - assertEquals(2, node.getEntryCount()); + while (iter.hasNext()) { + count++; + iter.next(); + } + assertEquals(2, count); - // verify behavior of getEntry - DirectoryNode child1 = ( DirectoryNode ) node.getEntry("child1"); - - child1.getEntry("child3"); - node.getEntry("child2"); - try - { - node.getEntry("child3"); - fail("should have caught FileNotFoundException"); - } - catch (FileNotFoundException ignored) - { + // verify behavior of isEmpty + assertFalse(node.isEmpty()); - // as expected - } + // verify behavior of getEntryCount + assertEquals(2, node.getEntryCount()); + + // verify behavior of getEntry + DirectoryNode child1 = (DirectoryNode) node.getEntry("child1"); + + child1.getEntry("child3"); + node.getEntry("child2"); + try { + node.getEntry("child3"); + fail("should have caught FileNotFoundException"); + } catch (FileNotFoundException ignored) { - // verify behavior of isDirectoryEntry - assertTrue(node.isDirectoryEntry()); + // as expected + } - // verify behavior of getName - assertEquals(property1.getName(), node.getName()); + // verify behavior of isDirectoryEntry + assertTrue(node.isDirectoryEntry()); - // verify behavior of isDocumentEntry - assertFalse(node.isDocumentEntry()); + // verify behavior of getName + assertEquals(property1.getName(), node.getName()); - // verify behavior of getParent - assertNull(node.getParent()); + // verify behavior of isDocumentEntry + assertFalse(node.isDocumentEntry()); + + // verify behavior of getParent + assertNull(node.getParent()); + } } /** * test deletion methods */ + @Test public void testDeletion() throws IOException { - POIFSFileSystem fs = new POIFSFileSystem(); - DirectoryEntry root = fs.getRoot(); + try (POIFSFileSystem fs = new POIFSFileSystem()) { + DirectoryEntry root = fs.getRoot(); - // verify cannot delete the root directory - assertFalse(root.delete()); - assertTrue(root.isEmpty()); + // verify cannot delete the root directory + assertFalse(root.delete()); + assertTrue(root.isEmpty()); - DirectoryEntry dir = fs.createDirectory("myDir"); + DirectoryEntry dir = fs.createDirectory("myDir"); - assertFalse(root.isEmpty()); - assertTrue(dir.isEmpty()); + assertFalse(root.isEmpty()); + assertTrue(dir.isEmpty()); - // verify can delete empty directory - assertFalse(root.delete()); - assertTrue(dir.delete()); + // verify can delete empty directory + assertFalse(root.delete()); + assertTrue(dir.delete()); - // Now look at a non-empty one - dir = fs.createDirectory("NextDir"); - DocumentEntry doc = - dir.createDocument("foo", - new ByteArrayInputStream(new byte[ 1 ])); + // Now look at a non-empty one + dir = fs.createDirectory("NextDir"); + DocumentEntry doc = + dir.createDocument("foo", + new ByteArrayInputStream(new byte[1])); - assertFalse(root.isEmpty()); - assertFalse(dir.isEmpty()); + assertFalse(root.isEmpty()); + assertFalse(dir.isEmpty()); - // verify cannot delete non-empty directory - assertFalse(dir.delete()); + // verify cannot delete non-empty directory + assertFalse(dir.delete()); - // but we can delete it if we remove the document - assertTrue(doc.delete()); - assertTrue(dir.isEmpty()); - assertTrue(dir.delete()); + // but we can delete it if we remove the document + assertTrue(doc.delete()); + assertTrue(dir.isEmpty()); + assertTrue(dir.delete()); - // It's really gone! - assertTrue(root.isEmpty()); + // It's really gone! + assertTrue(root.isEmpty()); - fs.close(); + } } /** * test change name methods */ + @Test public void testRename() throws IOException { - POIFSFileSystem fs = new POIFSFileSystem(); - DirectoryEntry root = fs.getRoot(); + try (POIFSFileSystem fs = new POIFSFileSystem()) { + DirectoryEntry root = fs.getRoot(); - // verify cannot rename the root directory - assertFalse(root.renameTo("foo")); - DirectoryEntry dir = fs.createDirectory("myDir"); - - assertTrue(dir.renameTo("foo")); - assertEquals("foo", dir.getName()); - DirectoryEntry dir2 = fs.createDirectory("myDir"); - - assertFalse(dir2.renameTo("foo")); - assertEquals("myDir", dir2.getName()); - assertTrue(dir.renameTo("FirstDir")); - assertTrue(dir2.renameTo("foo")); - assertEquals("foo", dir2.getName()); - - fs.close(); + // verify cannot rename the root directory + assertFalse(root.renameTo("foo")); + DirectoryEntry dir = fs.createDirectory("myDir"); + + assertTrue(dir.renameTo("foo")); + assertEquals("foo", dir.getName()); + DirectoryEntry dir2 = fs.createDirectory("myDir"); + + assertFalse(dir2.renameTo("foo")); + assertEquals("myDir", dir2.getName()); + assertTrue(dir.renameTo("FirstDir")); + assertTrue(dir2.renameTo("foo")); + assertEquals("foo", dir2.getName()); + } } } Modified: poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestDocumentDescriptor.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestDocumentDescriptor.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestDocumentDescriptor.java (original) +++ poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestDocumentDescriptor.java Fri Dec 27 23:00:13 2019 @@ -17,18 +17,20 @@ package org.apache.poi.poifs.filesystem; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + +import org.junit.Test; /** * Class to test DocumentDescriptor functionality - * - * @author Marc Johnson */ -public final class TestDocumentDescriptor extends TestCase { +public final class TestDocumentDescriptor { /** * test equality */ + @Test public void testEquality() { String[] names = { "c1", "c2", "c3", "c4", "c5" }; POIFSDocumentPath a1 = new POIFSDocumentPath(); @@ -39,131 +41,67 @@ public final class TestDocumentDescripto new String[ 0 ]); POIFSDocumentPath[] paths = { a1, a2, a3, a4, a5 }; - for (int j = 0; j < paths.length; j++) - { - for (int k = 0; k < paths.length; k++) - { - for (int m = 0; m < names.length; m++) - { - DocumentDescriptor d1 = new DocumentDescriptor(paths[ j ], - names[ m ]); - - for (int n = 0; n < names.length; n++) - { - DocumentDescriptor d2 = - new DocumentDescriptor(paths[ k ], names[ n ]); - - if (m == n) - { - assertEquals("" + j + "," + k + "," + m + "," - + n, d1, d2); - } - else - { - assertFalse(d1.equals(d2)); + for (int j = 0; j < paths.length; j++) { + for (int k = 0; k < paths.length; k++) { + for (int m = 0; m < names.length; m++) { + DocumentDescriptor d1 = new DocumentDescriptor(paths[ j ], names[ m ]); + + for (int n = 0; n < names.length; n++) { + DocumentDescriptor d2 = new DocumentDescriptor(paths[ k ], names[ n ]); + + if (m == n) { + assertEquals("" + j + "," + k + "," + m + "," + n, d1, d2); + } else { + assertNotEquals(d1, d2); } } } } } - a2 = new POIFSDocumentPath(a1, new String[] - { - "foo" - }); - a3 = new POIFSDocumentPath(a2, new String[] - { - "bar" - }); - a4 = new POIFSDocumentPath(a3, new String[] - { - "fubar" - }); - a5 = new POIFSDocumentPath(a4, new String[] - { - "foobar" - }); - POIFSDocumentPath[] builtUpPaths = - { - a1, a2, a3, a4, a5 - }; - POIFSDocumentPath[] fullPaths = - { - new POIFSDocumentPath(), new POIFSDocumentPath(new String[] - { - "foo" - }), new POIFSDocumentPath(new String[] - { - "foo", "bar" - }), new POIFSDocumentPath(new String[] - { - "foo", "bar", "fubar" - }), new POIFSDocumentPath(new String[] - { - "foo", "bar", "fubar", "foobar" - }) + a2 = new POIFSDocumentPath(a1, new String[]{"foo"}); + a3 = new POIFSDocumentPath(a2, new String[]{"bar"}); + a4 = new POIFSDocumentPath(a3, new String[]{"fubar"}); + a5 = new POIFSDocumentPath(a4, new String[]{"foobar"}); + POIFSDocumentPath[] builtUpPaths = {a1, a2, a3, a4, a5}; + POIFSDocumentPath[] fullPaths = { + new POIFSDocumentPath(), + new POIFSDocumentPath(new String[]{"foo"}), + new POIFSDocumentPath(new String[]{"foo", "bar"}), + new POIFSDocumentPath(new String[]{"foo", "bar", "fubar"}), + new POIFSDocumentPath(new String[]{"foo", "bar", "fubar", "foobar"}) }; - for (int k = 0; k < builtUpPaths.length; k++) - { - for (int j = 0; j < fullPaths.length; j++) - { - for (int m = 0; m < names.length; m++) - { - DocumentDescriptor d1 = - new DocumentDescriptor(fullPaths[ j ], names[ m ]); - - for (int n = 0; n < names.length; n++) - { - DocumentDescriptor d2 = - new DocumentDescriptor(builtUpPaths[ k ], - names[ n ]); - - if ((k == j) && (m == n)) - { - assertEquals("" + j + "," + k + "," + m + "," - + n, d1, d2); - } - else - { - assertFalse(d1.equals(d2)); + for (int k = 0; k < builtUpPaths.length; k++) { + for (int j = 0; j < fullPaths.length; j++) { + for (int m = 0; m < names.length; m++) { + DocumentDescriptor d1 = new DocumentDescriptor(fullPaths[ j ], names[ m ]); + + for (int n = 0; n < names.length; n++) { + DocumentDescriptor d2 = new DocumentDescriptor(builtUpPaths[ k ], names[ n ]); + + if ((k == j) && (m == n)) { + assertEquals("" + j + "," + k + "," + m + "," + n, d1, d2); + } else { + assertNotEquals(d1, d2); } } } } } - POIFSDocumentPath[] badPaths = - { - new POIFSDocumentPath(new String[] - { - "_foo" - }), new POIFSDocumentPath(new String[] - { - "foo", "_bar" - }), new POIFSDocumentPath(new String[] - { - "foo", "bar", "_fubar" - }), new POIFSDocumentPath(new String[] - { - "foo", "bar", "fubar", "_foobar" - }) + POIFSDocumentPath[] badPaths = { + new POIFSDocumentPath(new String[]{"_foo"}), + new POIFSDocumentPath(new String[]{"foo", "_bar"}), + new POIFSDocumentPath(new String[]{"foo", "bar", "_fubar"}), + new POIFSDocumentPath(new String[]{"foo", "bar", "fubar", "_foobar"}) }; - for (int k = 0; k < builtUpPaths.length; k++) - { - for (int j = 0; j < badPaths.length; j++) - { - for (int m = 0; m < names.length; m++) - { - DocumentDescriptor d1 = - new DocumentDescriptor(badPaths[ j ], names[ m ]); - - for (int n = 0; n < names.length; n++) - { - DocumentDescriptor d2 = - new DocumentDescriptor(builtUpPaths[ k ], - names[ n ]); - - assertFalse(d1.equals(d2)); + for (POIFSDocumentPath builtUpPath : builtUpPaths) { + for (POIFSDocumentPath badPath : badPaths) { + for (String s : names) { + DocumentDescriptor d1 = new DocumentDescriptor(badPath, s); + for (String name : names) { + DocumentDescriptor d2 = new DocumentDescriptor(builtUpPath, name); + assertNotEquals(d1, d2); } } } Modified: poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestNotOLE2Exception.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestNotOLE2Exception.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestNotOLE2Exception.java (original) +++ poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestNotOLE2Exception.java Fri Dec 27 23:00:13 2019 @@ -18,33 +18,32 @@ package org.apache.poi.poifs.filesystem; import static org.apache.poi.POITestCase.assertContains; +import static org.junit.Assert.fail; import java.io.IOException; import java.io.InputStream; -import junit.framework.TestCase; - import org.apache.poi.POIDataSamples; import org.apache.poi.hssf.HSSFTestDataSamples; import org.apache.poi.hssf.OldExcelFormatException; +import org.junit.Test; /** * Class to test that POIFS complains when given older non-OLE2 * formats. See also {@link TestOfficeXMLException} for OOXML - * checks + * checks */ -public class TestNotOLE2Exception extends TestCase { +public class TestNotOLE2Exception { private static InputStream openXLSSampleStream(String sampleFileName) { return HSSFTestDataSamples.openSampleFileStream(sampleFileName); } private static InputStream openDOCSampleStream(String sampleFileName) { return POIDataSamples.getDocumentInstance().openResourceAsStream(sampleFileName); } - - public void testRawXMLException() throws IOException { - InputStream in = openXLSSampleStream("SampleSS.xml"); - try { + @Test + public void testRawXMLException() throws IOException { + try (InputStream in = openXLSSampleStream("SampleSS.xml")) { new POIFSFileSystem(in).close(); fail("expected exception was not thrown"); } catch(NotOLE2FileException e) { @@ -53,11 +52,10 @@ public class TestNotOLE2Exception extend assertContains(e.getMessage(), "Formats such as Office 2003 XML"); } } - - public void testMSWriteException() throws IOException { - InputStream in = openDOCSampleStream("MSWriteOld.wri"); - try { + @Test + public void testMSWriteException() throws IOException { + try (InputStream in = openDOCSampleStream("MSWriteOld.wri")) { new POIFSFileSystem(in).close(); fail("expected exception was not thrown"); } catch(NotOLE2FileException e) { @@ -66,11 +64,10 @@ public class TestNotOLE2Exception extend assertContains(e.getMessage(), "doesn't currently support"); } } - - public void testBiff3Exception() throws IOException { - InputStream in = openXLSSampleStream("testEXCEL_3.xls"); - try { + @Test + public void testBiff3Exception() throws IOException { + try (InputStream in = openXLSSampleStream("testEXCEL_3.xls")) { new POIFSFileSystem(in).close(); fail("expected exception was not thrown"); } catch(OldExcelFormatException e) { @@ -80,10 +77,9 @@ public class TestNotOLE2Exception extend } } + @Test public void testBiff4Exception() throws IOException { - InputStream in = openXLSSampleStream("testEXCEL_4.xls"); - - try { + try (InputStream in = openXLSSampleStream("testEXCEL_4.xls")) { new POIFSFileSystem(in).close(); fail("expected exception was not thrown"); } catch(OldExcelFormatException e) { Modified: poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestOfficeXMLException.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestOfficeXMLException.java?rev=1872041&r1=1872040&r2=1872041&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestOfficeXMLException.java (original) +++ poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestOfficeXMLException.java Fri Dec 27 23:00:13 2019 @@ -17,7 +17,6 @@ package org.apache.poi.poifs.filesystem; -import static org.apache.poi.POITestCase.assertContains; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; @@ -26,11 +25,8 @@ import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.util.Arrays; import org.apache.poi.hssf.HSSFTestDataSamples; - -import junit.framework.TestCase; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org For additional commands, e-mail: commits-h...@poi.apache.org