You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2019/12/27 23:00:20 UTC
svn commit: r1872041 [17/23] - in /poi/trunk/src:
excelant/testcases/org/apache/poi/ss/examples/formula/
excelant/testcases/org/apache/poi/ss/excelant/
excelant/testcases/org/apache/poi/ss/excelant/util/
java/org/apache/poi/hssf/record/aggregates/ java...
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.Clauss@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-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org