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 [14/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/record/pivot/TestExtendedPivotTableViewFieldsRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestExtendedPivotTableViewFieldsRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestExtendedPivotTableViewFieldsRecord.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestExtendedPivotTableViewFieldsRecord.java Fri Dec 27 23:00:13 2019
@@ -17,60 +17,46 @@
package org.apache.poi.hssf.record.pivot;
+import static org.apache.poi.hssf.record.TestcaseRecordInputStream.confirmRecordEncoding;
+import static org.junit.Assert.assertEquals;
+
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.TestcaseRecordInputStream;
import org.apache.poi.hssf.record.pivottable.ExtendedPivotTableViewFieldsRecord;
import org.apache.poi.util.HexRead;
-import org.apache.poi.util.RecordFormatException;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
+import org.junit.Test;
/**
* Tests for {@link ExtendedPivotTableViewFieldsRecord}
- *
- * @author Josh Micich
*/
-public final class TestExtendedPivotTableViewFieldsRecord extends TestCase {
-
+public final class TestExtendedPivotTableViewFieldsRecord {
+
+ @Test
public void testSubNameNotPresent_bug46693() {
// This data came from attachment 23347 of bug 46693 at offset 0xAA43
byte[] data = HexRead.readFromString(
"00 01 14 00" + // BIFF header
"1E 14 00 0A FF FF FF FF 00 00 FF FF 00 00 00 00 00 00 00 00");
RecordInputStream in = TestcaseRecordInputStream.create(data);
- ExtendedPivotTableViewFieldsRecord rec;
- try {
- rec = new ExtendedPivotTableViewFieldsRecord(in);
- } catch (RecordFormatException e) {
- if (e.getMessage().equals("Expected to find a ContinueRecord in order to read remaining 65535 of 65535 chars")) {
- throw new AssertionFailedError("Identified bug 46693a");
- }
- throw e;
- }
-
+ // bug 46693a - Expected to find a ContinueRecord in order to read remaining 65535 of 65535 chars
+ ExtendedPivotTableViewFieldsRecord rec = new ExtendedPivotTableViewFieldsRecord(in);
+
assertEquals(data.length, rec.getRecordSize());
}
-
+
+ @Test
public void testOlderFormat_bug46918() {
// There are 10 SXVDEX records in the file (not uploaded) that originated bugzilla 46918
// They all had the following hex encoding:
byte[] data = HexRead.readFromString("00 01 0A 00 1E 14 00 0A FF FF FF FF 00 00");
RecordInputStream in = TestcaseRecordInputStream.create(data);
- ExtendedPivotTableViewFieldsRecord rec;
- try {
- rec = new ExtendedPivotTableViewFieldsRecord(in);
- } catch (RecordFormatException e) {
- if (e.getMessage().equals("Not enough data (0) to read requested (2) bytes")) {
- throw new AssertionFailedError("Identified bug 46918");
- }
- throw e;
- }
+ // bug 46918 - Not enough data (0) to read requested (2) bytes
+ ExtendedPivotTableViewFieldsRecord rec = new ExtendedPivotTableViewFieldsRecord(in);
byte[] expReserData = HexRead.readFromString("1E 14 00 0A FF FF FF FF 00 00" +
"FF FF 00 00 00 00 00 00 00 00");
-
- TestcaseRecordInputStream.confirmRecordEncoding(ExtendedPivotTableViewFieldsRecord.sid, expReserData, rec.serialize());
+
+ confirmRecordEncoding(ExtendedPivotTableViewFieldsRecord.sid, expReserData, rec.serialize());
}
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestPageItemRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestPageItemRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestPageItemRecord.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestPageItemRecord.java Fri Dec 27 23:00:13 2019
@@ -17,47 +17,45 @@
package org.apache.poi.hssf.record.pivot;
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
+import static org.apache.poi.hssf.record.TestcaseRecordInputStream.confirmRecordEncoding;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.TestcaseRecordInputStream;
import org.apache.poi.hssf.record.pivottable.PageItemRecord;
import org.apache.poi.util.HexRead;
+import org.junit.Test;
/**
* Tests for {@link PageItemRecord}
- *
- * @author Josh Micich
*/
-public final class TestPageItemRecord extends TestCase {
-
+public final class TestPageItemRecord {
+ @Test
public void testMoreThanOneInfoItem_bug46917() {
byte[] data = HexRead.readFromString("01 02 03 04 05 06 07 08 09 0A 0B 0C");
RecordInputStream in = TestcaseRecordInputStream.create(PageItemRecord.sid, data);
PageItemRecord rec = new PageItemRecord(in);
- if (in.remaining() == 6) {
- throw new AssertionFailedError("Identified bug 46917");
- }
+ assertNotEquals("Identified bug 46917", 6, in.remaining());
assertEquals(0, in.remaining());
-
+
assertEquals(4+data.length, rec.getRecordSize());
}
-
+
+ @Test
public void testSerialize() {
confirmSerialize("01 02 03 04 05 06");
confirmSerialize("01 02 03 04 05 06 07 08 09 0A 0B 0C");
confirmSerialize("01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12");
}
- private static PageItemRecord confirmSerialize(String hexDump) {
+ private static void confirmSerialize(String hexDump) {
byte[] data = HexRead.readFromString(hexDump);
RecordInputStream in = TestcaseRecordInputStream.create(PageItemRecord.sid, data);
PageItemRecord rec = new PageItemRecord(in);
assertEquals(0, in.remaining());
assertEquals(4+data.length, rec.getRecordSize());
byte[] data2 = rec.serialize();
- TestcaseRecordInputStream.confirmRecordEncoding(PageItemRecord.sid, data, data2);
- return rec;
+ confirmRecordEncoding(PageItemRecord.sid, data, data2);
}
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestViewFieldsRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestViewFieldsRecord.java?rev=1872041&r1=1872040&r2=1872041&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestViewFieldsRecord.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/pivot/TestViewFieldsRecord.java Fri Dec 27 23:00:13 2019
@@ -17,48 +17,47 @@
package org.apache.poi.hssf.record.pivot;
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
+import static org.apache.poi.hssf.record.TestcaseRecordInputStream.confirmRecordEncoding;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.TestcaseRecordInputStream;
import org.apache.poi.hssf.record.pivottable.ViewFieldsRecord;
import org.apache.poi.util.HexRead;
+import org.junit.Test;
/**
* Tests for {@link ViewFieldsRecord}
- *
- * @author Josh Micich
*/
-public final class TestViewFieldsRecord extends TestCase {
-
+public final class TestViewFieldsRecord {
+
+ @Test
public void testUnicodeFlag_bug46693() {
byte[] data = HexRead.readFromString("01 00 01 00 01 00 04 00 05 00 00 6D 61 72 63 6F");
RecordInputStream in = TestcaseRecordInputStream.create(ViewFieldsRecord.sid, data);
ViewFieldsRecord rec = new ViewFieldsRecord(in);
- if (in.remaining() == 1) {
- throw new AssertionFailedError("Identified bug 46693b");
- }
+ assertNotEquals("Identified bug 46693b", 1, in.remaining());
assertEquals(0, in.remaining());
assertEquals(4+data.length, rec.getRecordSize());
}
-
+
+ @Test
public void testSerialize() {
- // This hex data was produced by changing the 'Custom Name' property,
+ // This hex data was produced by changing the 'Custom Name' property,
// available under 'Field Settings' from the 'PivotTable Field List' (Excel 2007)
confirmSerialize("00 00 01 00 01 00 00 00 FF FF");
confirmSerialize("01 00 01 00 01 00 04 00 05 00 00 6D 61 72 63 6F");
confirmSerialize("01 00 01 00 01 00 04 00 0A 00 01 48 00 69 00 73 00 74 00 6F 00 72 00 79 00 2D 00 82 69 81 89");
}
- private static ViewFieldsRecord confirmSerialize(String hexDump) {
+ private static void confirmSerialize(String hexDump) {
byte[] data = HexRead.readFromString(hexDump);
RecordInputStream in = TestcaseRecordInputStream.create(ViewFieldsRecord.sid, data);
ViewFieldsRecord rec = new ViewFieldsRecord(in);
assertEquals(0, in.remaining());
assertEquals(4+data.length, rec.getRecordSize());
byte[] data2 = rec.serialize();
- TestcaseRecordInputStream.confirmRecordEncoding(ViewFieldsRecord.sid, data, data2);
- return rec;
+ confirmRecordEncoding(ViewFieldsRecord.sid, data, data2);
}
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestCellStyle.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestCellStyle.java?rev=1872041&r1=1872040&r2=1872041&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestCellStyle.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestCellStyle.java Fri Dec 27 23:00:13 2019
@@ -17,6 +17,14 @@
package org.apache.poi.hssf.usermodel;
+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.assertNotSame;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -39,13 +47,11 @@ import org.apache.poi.util.LocaleUtil;
import org.apache.poi.util.TempFile;
import org.junit.Test;
-import junit.framework.TestCase;
-
/**
* Class to test cell styling functionality
*/
-public final class TestCellStyle extends TestCase {
+public final class TestCellStyle {
private static HSSFWorkbook openSample(String sampleFileName) {
return HSSFTestDataSamples.openSampleWorkbook(sampleFileName);
@@ -61,39 +67,39 @@ public final class TestCellStyle extends
* HSSFSheet last row or first row is incorrect. <P>
*
*/
+ @Test
public void testWriteSheetFont() throws IOException{
- File file = TempFile.createTempFile("testWriteSheetFont",
- ".xls");
- FileOutputStream out = new FileOutputStream(file);
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet s = wb.createSheet();
- HSSFRow r = null;
- HSSFCell c = 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);
-
- for (int cellnum = 0; cellnum < 50; cellnum += 2) {
- c = r.createCell(cellnum);
- c.setCellValue(rownum * 10000 + cellnum
- + ((( double ) rownum / 1000)
- + (( double ) cellnum / 10000)));
- c = r.createCell(cellnum + 1);
- c.setCellValue("TEST");
- c.setCellStyle(cs);
+ File file = TempFile.createTempFile("testWriteSheetFont", ".xls");
+ 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);
+
+ for (int cellnum = 0; cellnum < 50; cellnum += 2) {
+ HSSFCell c = r.createCell(cellnum);
+ c.setCellValue(rownum * 10000 + cellnum
+ + (((double) rownum / 1000)
+ + ((double) cellnum / 10000)));
+ c = r.createCell(cellnum + 1);
+ c.setCellValue("TEST");
+ c.setCellStyle(cs);
+ }
+ }
+ try (FileOutputStream out = new FileOutputStream(file)) {
+ wb.write(out);
}
+
+ SanityChecker sanityChecker = new SanityChecker();
+ sanityChecker.checkHSSFWorkbook(wb);
+ assertEquals("LAST ROW == 99", 99, s.getLastRowNum());
+ assertEquals("FIRST ROW == 0", 0, s.getFirstRowNum());
}
- wb.write(out);
- out.close();
- SanityChecker sanityChecker = new SanityChecker();
- sanityChecker.checkHSSFWorkbook(wb);
- assertEquals("LAST ROW == 99", 99, s.getLastRowNum());
- assertEquals("FIRST ROW == 0", 0, s.getFirstRowNum());
// assert((s.getLastRowNum() == 99));
}
@@ -101,66 +107,67 @@ public final class TestCellStyle extends
/**
* Tests that is creating a file with a date or an calendar works correctly.
*/
+ @Test
public void testDataStyle() throws IOException {
- File file = TempFile.createTempFile("testWriteSheetStyleDate",
- ".xls");
- FileOutputStream out = new FileOutputStream(file);
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet s = wb.createSheet();
- HSSFCellStyle cs = wb.createCellStyle();
- HSSFRow row = s.createRow(0);
-
- // with Date:
- HSSFCell cell = row.createCell(1);
- cs.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
- cell.setCellStyle(cs);
- cell.setCellValue(new Date());
-
- // with Calendar:
- cell = row.createCell(2);
- cs.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
- cell.setCellStyle(cs);
- Calendar cal = LocaleUtil.getLocaleCalendar();
- cell.setCellValue(cal);
-
- wb.write(out);
- out.close();
- SanityChecker sanityChecker = new SanityChecker();
- sanityChecker.checkHSSFWorkbook(wb);
+ File file = TempFile.createTempFile("testWriteSheetStyleDate", ".xls");
+ try (HSSFWorkbook wb = new HSSFWorkbook()) {
+ HSSFSheet s = wb.createSheet();
+ HSSFCellStyle cs = wb.createCellStyle();
+ HSSFRow row = s.createRow(0);
+
+ // with Date:
+ HSSFCell cell = row.createCell(1);
+ cs.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
+ cell.setCellStyle(cs);
+ cell.setCellValue(new Date());
+
+ // with Calendar:
+ cell = row.createCell(2);
+ cs.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
+ cell.setCellStyle(cs);
+ Calendar cal = LocaleUtil.getLocaleCalendar();
+ cell.setCellValue(cal);
+
+ try (FileOutputStream out = new FileOutputStream(file)) {
+ wb.write(out);
+ }
+ SanityChecker sanityChecker = new SanityChecker();
+ sanityChecker.checkHSSFWorkbook(wb);
- assertEquals("LAST ROW ", 0, s.getLastRowNum());
- assertEquals("FIRST ROW ", 0, s.getFirstRowNum());
+ assertEquals("LAST ROW ", 0, s.getLastRowNum());
+ assertEquals("FIRST ROW ", 0, s.getFirstRowNum());
+ }
}
-
+
+ @Test
public void testHashEquals() throws IOException {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet s = wb.createSheet();
- HSSFCellStyle cs1 = wb.createCellStyle();
- HSSFCellStyle cs2 = wb.createCellStyle();
- HSSFRow row = s.createRow(0);
- HSSFCell cell1 = row.createCell(1);
- HSSFCell cell2 = row.createCell(2);
-
- cs1.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
- cs2.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/dd/yy"));
-
- cell1.setCellStyle(cs1);
- cell1.setCellValue(new Date());
-
- cell2.setCellStyle(cs2);
- cell2.setCellValue(new Date());
-
- assertEquals(cs1.hashCode(), cs1.hashCode());
- assertEquals(cs2.hashCode(), cs2.hashCode());
- assertEquals(cs1, cs1);
- assertEquals(cs2, cs2);
-
- // Change cs1, hash will alter
- int hash1 = cs1.hashCode();
- cs1.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/dd/yy"));
- assertFalse(hash1 == cs1.hashCode());
-
- wb.close();
+ try (HSSFWorkbook wb = new HSSFWorkbook()) {
+ HSSFSheet s = wb.createSheet();
+ HSSFCellStyle cs1 = wb.createCellStyle();
+ HSSFCellStyle cs2 = wb.createCellStyle();
+ HSSFRow row = s.createRow(0);
+ HSSFCell cell1 = row.createCell(1);
+ HSSFCell cell2 = row.createCell(2);
+
+ cs1.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
+ cs2.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/dd/yy"));
+
+ cell1.setCellStyle(cs1);
+ cell1.setCellValue(new Date());
+
+ cell2.setCellStyle(cs2);
+ cell2.setCellValue(new Date());
+
+ assertEquals(cs1.hashCode(), cs1.hashCode());
+ assertEquals(cs2.hashCode(), cs2.hashCode());
+ assertEquals(cs1, cs1);
+ assertEquals(cs2, cs2);
+
+ // Change cs1, hash will alter
+ int hash1 = cs1.hashCode();
+ cs1.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/dd/yy"));
+ assertNotEquals(hash1, cs1.hashCode());
+ }
}
/**
@@ -173,252 +180,265 @@ public final class TestCellStyle extends
* HSSFSheet last row or first row is incorrect. <P>
*
*/
+ @Test
public void testWriteSheetStyle() throws IOException {
- File file = TempFile.createTempFile("testWriteSheetStyle",
- ".xls");
- FileOutputStream out = new FileOutputStream(file);
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet s = wb.createSheet();
- HSSFRow r = null;
- HSSFCell c = 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.DIAMONDS);
- fnt.setColor(( short ) 0xf);
- fnt.setItalic(true);
- cs2.setFillForegroundColor(( short ) 0x0);
- cs2.setFillPattern(FillPatternType.DIAMONDS);
- cs2.setFont(fnt);
- for (int rownum = 0; rownum < 100; rownum++) {
- r = s.createRow(rownum);
-
- for (int cellnum = 0; cellnum < 50; cellnum += 2) {
- c = r.createCell(cellnum);
- c.setCellValue(rownum * 10000 + cellnum
- + ((( double ) rownum / 1000)
- + (( double ) cellnum / 10000)));
- c.setCellStyle(cs);
- c = r.createCell(cellnum + 1);
- c.setCellValue("TEST");
- c.setCellStyle(cs2);
+ File file = TempFile.createTempFile("testWriteSheetStyle", ".xls");
+ try (HSSFWorkbook wb = new HSSFWorkbook()) {
+ HSSFSheet s = wb.createSheet();
+ HSSFRow r = null;
+ HSSFCell c = 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.DIAMONDS);
+ fnt.setColor((short) 0xf);
+ fnt.setItalic(true);
+ cs2.setFillForegroundColor((short) 0x0);
+ cs2.setFillPattern(FillPatternType.DIAMONDS);
+ cs2.setFont(fnt);
+ for (int rownum = 0; rownum < 100; rownum++) {
+ r = s.createRow(rownum);
+
+ for (int cellnum = 0; cellnum < 50; cellnum += 2) {
+ c = r.createCell(cellnum);
+ c.setCellValue(rownum * 10000 + cellnum
+ + (((double) rownum / 1000)
+ + ((double) cellnum / 10000)));
+ c.setCellStyle(cs);
+ c = r.createCell(cellnum + 1);
+ c.setCellValue("TEST");
+ c.setCellStyle(cs2);
+ }
+ }
+ try (FileOutputStream out = new FileOutputStream(file)) {
+ wb.write(out);
}
+ SanityChecker sanityChecker = new SanityChecker();
+ sanityChecker.checkHSSFWorkbook(wb);
+ assertEquals("LAST ROW == 99", 99, s.getLastRowNum());
+ assertEquals("FIRST ROW == 0", 0, s.getFirstRowNum());
}
- wb.write(out);
- out.close();
- SanityChecker sanityChecker = new SanityChecker();
- sanityChecker.checkHSSFWorkbook(wb);
- assertEquals("LAST ROW == 99", 99, s.getLastRowNum());
- assertEquals("FIRST ROW == 0", 0, s.getFirstRowNum());
}
-
+
/**
* Cloning one HSSFCellStyle onto Another, same
* HSSFWorkbook
*/
- public void testCloneStyleSameWB() {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFFont fnt = wb.createFont();
- fnt.setFontName("TestingFont");
- assertEquals(5, wb.getNumberOfFonts());
-
- HSSFCellStyle orig = wb.createCellStyle();
- orig.setAlignment(HorizontalAlignment.JUSTIFY);
- orig.setFont(fnt);
- orig.setDataFormat((short)18);
-
- assertEquals(HorizontalAlignment.JUSTIFY, orig.getAlignment());
- assertEquals(fnt, orig.getFont(wb));
- assertEquals(18, orig.getDataFormat());
-
- HSSFCellStyle clone = wb.createCellStyle();
- assertNotSame(HorizontalAlignment.RIGHT, clone.getAlignment());
- assertNotSame(fnt, clone.getFont(wb));
- assertFalse(18 == clone.getDataFormat());
-
- clone.cloneStyleFrom(orig);
- assertEquals(HorizontalAlignment.JUSTIFY, clone.getAlignment());
- assertEquals(fnt, clone.getFont(wb));
- assertEquals(18, clone.getDataFormat());
- assertEquals(5, wb.getNumberOfFonts());
+ @Test
+ public void testCloneStyleSameWB() throws IOException {
+ try (HSSFWorkbook wb = new HSSFWorkbook()) {
+ HSSFFont fnt = wb.createFont();
+ fnt.setFontName("TestingFont");
+ assertEquals(5, wb.getNumberOfFonts());
+
+ HSSFCellStyle orig = wb.createCellStyle();
+ orig.setAlignment(HorizontalAlignment.JUSTIFY);
+ orig.setFont(fnt);
+ orig.setDataFormat((short) 18);
+
+ assertEquals(HorizontalAlignment.JUSTIFY, orig.getAlignment());
+ assertEquals(fnt, orig.getFont(wb));
+ assertEquals(18, orig.getDataFormat());
+
+ HSSFCellStyle clone = wb.createCellStyle();
+ assertNotSame(HorizontalAlignment.RIGHT, clone.getAlignment());
+ assertNotSame(fnt, clone.getFont(wb));
+ assertNotEquals(18, clone.getDataFormat());
+
+ clone.cloneStyleFrom(orig);
+ assertEquals(HorizontalAlignment.JUSTIFY, clone.getAlignment());
+ assertEquals(fnt, clone.getFont(wb));
+ assertEquals(18, clone.getDataFormat());
+ assertEquals(5, wb.getNumberOfFonts());
+ }
}
-
+
/**
* Cloning one HSSFCellStyle onto Another, across
* two different HSSFWorkbooks
*/
- public void testCloneStyleDiffWB() {
- HSSFWorkbook wbOrig = new HSSFWorkbook();
-
- HSSFFont fnt = wbOrig.createFont();
- fnt.setFontName("TestingFont");
- assertEquals(5, wbOrig.getNumberOfFonts());
-
- HSSFDataFormat fmt = wbOrig.createDataFormat();
- fmt.getFormat("MadeUpOne");
- fmt.getFormat("MadeUpTwo");
-
- HSSFCellStyle orig = wbOrig.createCellStyle();
- orig.setAlignment(HorizontalAlignment.RIGHT);
- orig.setFont(fnt);
- orig.setDataFormat(fmt.getFormat("Test##"));
-
- assertEquals(HorizontalAlignment.RIGHT, orig.getAlignment());
- assertEquals(fnt, orig.getFont(wbOrig));
- assertEquals(fmt.getFormat("Test##"), orig.getDataFormat());
-
- // Now a style on another workbook
- HSSFWorkbook wbClone = new HSSFWorkbook();
- assertEquals(4, wbClone.getNumberOfFonts());
- HSSFDataFormat fmtClone = wbClone.createDataFormat();
-
- HSSFCellStyle clone = wbClone.createCellStyle();
- assertEquals(4, wbClone.getNumberOfFonts());
-
- assertNotSame(HorizontalAlignment.RIGHT, clone.getAlignment());
- assertNotSame("TestingFont", clone.getFont(wbClone).getFontName());
-
- clone.cloneStyleFrom(orig);
- assertEquals(HorizontalAlignment.RIGHT, clone.getAlignment());
- assertEquals("TestingFont", clone.getFont(wbClone).getFontName());
- assertEquals(fmtClone.getFormat("Test##"), clone.getDataFormat());
- assertFalse(fmtClone.getFormat("Test##") == fmt.getFormat("Test##"));
- assertEquals(5, wbClone.getNumberOfFonts());
- }
-
- public void testStyleNames() {
- HSSFWorkbook wb = openSample("WithExtendedStyles.xls");
- HSSFSheet s = wb.getSheetAt(0);
- HSSFCell c1 = s.getRow(0).getCell(0);
- HSSFCell c2 = s.getRow(1).getCell(0);
- HSSFCell c3 = s.getRow(2).getCell(0);
-
- HSSFCellStyle cs1 = c1.getCellStyle();
- HSSFCellStyle cs2 = c2.getCellStyle();
- HSSFCellStyle cs3 = c3.getCellStyle();
-
- assertNotNull(cs1);
- assertNotNull(cs2);
- assertNotNull(cs3);
-
- // Check we got the styles we'd expect
- assertEquals(10, cs1.getFont(wb).getFontHeightInPoints());
- assertEquals(9, cs2.getFont(wb).getFontHeightInPoints());
- assertEquals(12, cs3.getFont(wb).getFontHeightInPoints());
-
- assertEquals(15, cs1.getIndex());
- assertEquals(23, cs2.getIndex());
- assertEquals(24, cs3.getIndex());
-
- assertNull(cs1.getParentStyle());
- assertNotNull(cs2.getParentStyle());
- assertNotNull(cs3.getParentStyle());
-
- assertEquals(21, cs2.getParentStyle().getIndex());
- assertEquals(22, cs3.getParentStyle().getIndex());
-
- // Now check we can get style records for
- // the parent ones
- assertNull(wb.getWorkbook().getStyleRecord(15));
- assertNull(wb.getWorkbook().getStyleRecord(23));
- assertNull(wb.getWorkbook().getStyleRecord(24));
-
- assertNotNull(wb.getWorkbook().getStyleRecord(21));
- assertNotNull(wb.getWorkbook().getStyleRecord(22));
-
- // Now check the style names
- assertNull(cs1.getUserStyleName());
- assertNull(cs2.getUserStyleName());
- assertNull(cs3.getUserStyleName());
- assertEquals("style1", cs2.getParentStyle().getUserStyleName());
- assertEquals("style2", cs3.getParentStyle().getUserStyleName());
-
- // now apply a named style to a new cell
- HSSFCell c4 = s.getRow(0).createCell(1);
- c4.setCellStyle(cs2);
- assertEquals("style1", c4.getCellStyle().getParentStyle().getUserStyleName());
- }
-
- public void testGetSetBorderHair() {
- HSSFWorkbook wb = openSample("55341_CellStyleBorder.xls");
- HSSFSheet s = wb.getSheetAt(0);
- HSSFCellStyle cs;
-
- cs = s.getRow(0).getCell(0).getCellStyle();
- assertEquals(BorderStyle.HAIR, cs.getBorderRight());
-
- cs = s.getRow(1).getCell(1).getCellStyle();
- assertEquals(BorderStyle.DOTTED, cs.getBorderRight());
-
- cs = s.getRow(2).getCell(2).getCellStyle();
- assertEquals(BorderStyle.DASH_DOT_DOT, cs.getBorderRight());
-
- cs = s.getRow(3).getCell(3).getCellStyle();
- assertEquals(BorderStyle.DASHED, cs.getBorderRight());
-
- cs = s.getRow(4).getCell(4).getCellStyle();
- assertEquals(BorderStyle.THIN, cs.getBorderRight());
-
- cs = s.getRow(5).getCell(5).getCellStyle();
- assertEquals(BorderStyle.MEDIUM_DASH_DOT_DOT, cs.getBorderRight());
-
- cs = s.getRow(6).getCell(6).getCellStyle();
- assertEquals(BorderStyle.SLANTED_DASH_DOT, cs.getBorderRight());
-
- cs = s.getRow(7).getCell(7).getCellStyle();
- assertEquals(BorderStyle.MEDIUM_DASH_DOT, cs.getBorderRight());
-
- cs = s.getRow(8).getCell(8).getCellStyle();
- assertEquals(BorderStyle.MEDIUM_DASHED, cs.getBorderRight());
-
- cs = s.getRow(9).getCell(9).getCellStyle();
- assertEquals(BorderStyle.MEDIUM, cs.getBorderRight());
+ @Test
+ public void testCloneStyleDiffWB() throws IOException {
+ try (HSSFWorkbook wbOrig = new HSSFWorkbook()) {
+
+ HSSFFont fnt = wbOrig.createFont();
+ fnt.setFontName("TestingFont");
+ assertEquals(5, wbOrig.getNumberOfFonts());
+
+ HSSFDataFormat fmt = wbOrig.createDataFormat();
+ fmt.getFormat("MadeUpOne");
+ fmt.getFormat("MadeUpTwo");
+
+ HSSFCellStyle orig = wbOrig.createCellStyle();
+ orig.setAlignment(HorizontalAlignment.RIGHT);
+ orig.setFont(fnt);
+ orig.setDataFormat(fmt.getFormat("Test##"));
+
+ assertEquals(HorizontalAlignment.RIGHT, orig.getAlignment());
+ assertEquals(fnt, orig.getFont(wbOrig));
+ assertEquals(fmt.getFormat("Test##"), orig.getDataFormat());
+
+ // Now a style on another workbook
+ try (HSSFWorkbook wbClone = new HSSFWorkbook()) {
+ assertEquals(4, wbClone.getNumberOfFonts());
+ HSSFDataFormat fmtClone = wbClone.createDataFormat();
+
+ HSSFCellStyle clone = wbClone.createCellStyle();
+ assertEquals(4, wbClone.getNumberOfFonts());
+
+ assertNotSame(HorizontalAlignment.RIGHT, clone.getAlignment());
+ assertNotSame("TestingFont", clone.getFont(wbClone).getFontName());
+
+ clone.cloneStyleFrom(orig);
+ assertEquals(HorizontalAlignment.RIGHT, clone.getAlignment());
+ assertEquals("TestingFont", clone.getFont(wbClone).getFontName());
+ assertEquals(fmtClone.getFormat("Test##"), clone.getDataFormat());
+ assertNotEquals(fmtClone.getFormat("Test##"), fmt.getFormat("Test##"));
+ assertEquals(5, wbClone.getNumberOfFonts());
+ }
+ }
+ }
+
+ @Test
+ public void testStyleNames() throws IOException {
+ try (HSSFWorkbook wb = openSample("WithExtendedStyles.xls")) {
+ HSSFSheet s = wb.getSheetAt(0);
+ HSSFCell c1 = s.getRow(0).getCell(0);
+ HSSFCell c2 = s.getRow(1).getCell(0);
+ HSSFCell c3 = s.getRow(2).getCell(0);
+
+ HSSFCellStyle cs1 = c1.getCellStyle();
+ HSSFCellStyle cs2 = c2.getCellStyle();
+ HSSFCellStyle cs3 = c3.getCellStyle();
+
+ assertNotNull(cs1);
+ assertNotNull(cs2);
+ assertNotNull(cs3);
+
+ // Check we got the styles we'd expect
+ assertEquals(10, cs1.getFont(wb).getFontHeightInPoints());
+ assertEquals(9, cs2.getFont(wb).getFontHeightInPoints());
+ assertEquals(12, cs3.getFont(wb).getFontHeightInPoints());
+
+ assertEquals(15, cs1.getIndex());
+ assertEquals(23, cs2.getIndex());
+ assertEquals(24, cs3.getIndex());
+
+ assertNull(cs1.getParentStyle());
+ assertNotNull(cs2.getParentStyle());
+ assertNotNull(cs3.getParentStyle());
+
+ assertEquals(21, cs2.getParentStyle().getIndex());
+ assertEquals(22, cs3.getParentStyle().getIndex());
+
+ // Now check we can get style records for the parent ones
+ assertNull(wb.getWorkbook().getStyleRecord(15));
+ assertNull(wb.getWorkbook().getStyleRecord(23));
+ assertNull(wb.getWorkbook().getStyleRecord(24));
+
+ assertNotNull(wb.getWorkbook().getStyleRecord(21));
+ assertNotNull(wb.getWorkbook().getStyleRecord(22));
+
+ // Now check the style names
+ assertNull(cs1.getUserStyleName());
+ assertNull(cs2.getUserStyleName());
+ assertNull(cs3.getUserStyleName());
+ assertEquals("style1", cs2.getParentStyle().getUserStyleName());
+ assertEquals("style2", cs3.getParentStyle().getUserStyleName());
+
+ // now apply a named style to a new cell
+ HSSFCell c4 = s.getRow(0).createCell(1);
+ c4.setCellStyle(cs2);
+ assertEquals("style1", c4.getCellStyle().getParentStyle().getUserStyleName());
+ }
+ }
+
+ @Test
+ public void testGetSetBorderHair() throws IOException {
+ try (HSSFWorkbook wb = openSample("55341_CellStyleBorder.xls")) {
+ HSSFSheet s = wb.getSheetAt(0);
+ HSSFCellStyle cs;
+
+ cs = s.getRow(0).getCell(0).getCellStyle();
+ assertEquals(BorderStyle.HAIR, cs.getBorderRight());
+
+ cs = s.getRow(1).getCell(1).getCellStyle();
+ assertEquals(BorderStyle.DOTTED, cs.getBorderRight());
+
+ cs = s.getRow(2).getCell(2).getCellStyle();
+ assertEquals(BorderStyle.DASH_DOT_DOT, cs.getBorderRight());
+
+ cs = s.getRow(3).getCell(3).getCellStyle();
+ assertEquals(BorderStyle.DASHED, cs.getBorderRight());
- cs = s.getRow(10).getCell(10).getCellStyle();
- assertEquals(BorderStyle.THICK, cs.getBorderRight());
+ cs = s.getRow(4).getCell(4).getCellStyle();
+ assertEquals(BorderStyle.THIN, cs.getBorderRight());
- cs = s.getRow(11).getCell(11).getCellStyle();
- assertEquals(BorderStyle.DOUBLE, cs.getBorderRight());
+ cs = s.getRow(5).getCell(5).getCellStyle();
+ assertEquals(BorderStyle.MEDIUM_DASH_DOT_DOT, cs.getBorderRight());
+
+ cs = s.getRow(6).getCell(6).getCellStyle();
+ assertEquals(BorderStyle.SLANTED_DASH_DOT, cs.getBorderRight());
+
+ cs = s.getRow(7).getCell(7).getCellStyle();
+ assertEquals(BorderStyle.MEDIUM_DASH_DOT, cs.getBorderRight());
+
+ cs = s.getRow(8).getCell(8).getCellStyle();
+ assertEquals(BorderStyle.MEDIUM_DASHED, cs.getBorderRight());
+
+ cs = s.getRow(9).getCell(9).getCellStyle();
+ assertEquals(BorderStyle.MEDIUM, cs.getBorderRight());
+
+ cs = s.getRow(10).getCell(10).getCellStyle();
+ assertEquals(BorderStyle.THICK, cs.getBorderRight());
+
+ cs = s.getRow(11).getCell(11).getCellStyle();
+ assertEquals(BorderStyle.DOUBLE, cs.getBorderRight());
+ }
}
- public void testShrinkToFit() {
+ @Test
+ public void testShrinkToFit() throws IOException {
// Existing file
- HSSFWorkbook wb = openSample("ShrinkToFit.xls");
- HSSFSheet s = wb.getSheetAt(0);
- HSSFRow r = s.getRow(0);
- HSSFCellStyle cs = r.getCell(0).getCellStyle();
-
- assertTrue(cs.getShrinkToFit());
-
- // New file
- HSSFWorkbook wbOrig = new HSSFWorkbook();
- s = wbOrig.createSheet();
- r = s.createRow(0);
-
- cs = wbOrig.createCellStyle();
- cs.setShrinkToFit(false);
- r.createCell(0).setCellStyle(cs);
-
- cs = wbOrig.createCellStyle();
- cs.setShrinkToFit(true);
- r.createCell(1).setCellStyle(cs);
-
- // Write out, read, and check
- wb = HSSFTestDataSamples.writeOutAndReadBack(wbOrig);
- s = wb.getSheetAt(0);
- r = s.getRow(0);
- assertFalse(r.getCell(0).getCellStyle().getShrinkToFit());
- assertTrue(r.getCell(1).getCellStyle().getShrinkToFit());
- }
-
-
-
+ try (HSSFWorkbook wb1 = openSample("ShrinkToFit.xls")) {
+ HSSFSheet s = wb1.getSheetAt(0);
+ HSSFRow r = s.getRow(0);
+ HSSFCellStyle cs = r.getCell(0).getCellStyle();
+
+ assertTrue(cs.getShrinkToFit());
+ }
+
+ // New file
+ try (HSSFWorkbook wbOrig = new HSSFWorkbook()) {
+ HSSFSheet s = wbOrig.createSheet();
+ HSSFRow r = s.createRow(0);
+
+ HSSFCellStyle cs = wbOrig.createCellStyle();
+ cs.setShrinkToFit(false);
+ r.createCell(0).setCellStyle(cs);
+
+ cs = wbOrig.createCellStyle();
+ cs.setShrinkToFit(true);
+ r.createCell(1).setCellStyle(cs);
+
+ // Write out, read, and check
+ try (HSSFWorkbook wb = HSSFTestDataSamples.writeOutAndReadBack(wbOrig)) {
+ s = wb.getSheetAt(0);
+ r = s.getRow(0);
+ assertFalse(r.getCell(0).getCellStyle().getShrinkToFit());
+ assertTrue(r.getCell(1).getCellStyle().getShrinkToFit());
+ }
+ }
+ }
+
+
+
private static class CellFormatBugExample extends Thread {
private final String fileName;
private Throwable exception;
@@ -431,18 +451,17 @@ public final class TestCellStyle extends
public void run() {
try {
for(int i = 0;i< 10;i++) {
- Workbook wb = HSSFTestDataSamples.openSampleWorkbook(fileName);
- Sheet sheet = wb.getSheetAt(0);
-
- for (Row row : sheet) {
- for (Integer idxCell = 0; idxCell < row.getLastCellNum(); idxCell++) {
-
- Cell cell = row.getCell(idxCell);
- cell.getCellStyle().getDataFormatString();
- if (cell.getCellType() == CellType.NUMERIC) {
- boolean isDate = DateUtil.isCellDateFormatted(cell);
- if (idxCell > 0 && isDate) {
- fail("cell " + idxCell + " is not a date: " + idxCell);
+ try (Workbook wb = HSSFTestDataSamples.openSampleWorkbook(fileName)) {
+ Sheet sheet = wb.getSheetAt(0);
+
+ for (Row row : sheet) {
+ for (Integer idxCell = 0; idxCell < row.getLastCellNum(); idxCell++) {
+
+ Cell cell = row.getCell(idxCell);
+ cell.getCellStyle().getDataFormatString();
+ if (cell.getCellType() == CellType.NUMERIC) {
+ boolean isDate = DateUtil.isCellDateFormatted(cell);
+ assertFalse("cell " + idxCell + " is not a date.", idxCell > 0 && isDate);
}
}
}
@@ -458,15 +477,16 @@ public final class TestCellStyle extends
}
}
+ @Test
public void test56563() throws Throwable {
CellFormatBugExample threadA = new CellFormatBugExample("56563a.xls");
threadA.start();
CellFormatBugExample threadB = new CellFormatBugExample("56563b.xls");
threadB.start();
-
+
threadA.join();
threadB.join();
-
+
if(threadA.getException() != null) {
throw threadA.getException();
}
@@ -474,79 +494,73 @@ public final class TestCellStyle extends
throw threadB.getException();
}
}
-
+
+ @Test
public void test56959() throws IOException {
- Workbook wb = new HSSFWorkbook();
- Sheet sheet = wb.createSheet("somesheet");
-
- Row row = sheet.createRow(0);
-
- // Create a new font and alter it.
- Font font = wb.createFont();
- font.setFontHeightInPoints((short)24);
- font.setFontName("Courier New");
- font.setItalic(true);
- font.setStrikeout(true);
- font.setColor(Font.COLOR_RED);
-
- CellStyle style = wb.createCellStyle();
- style.setBorderBottom(BorderStyle.DOTTED);
- style.setFont(font);
-
- Cell cell = row.createCell(0);
- cell.setCellStyle(style);
- cell.setCellValue("testtext");
-
- Cell newCell = row.createCell(1);
-
- newCell.setCellStyle(style);
- newCell.setCellValue("2testtext2");
-
- CellStyle newStyle = newCell.getCellStyle();
- assertEquals(BorderStyle.DOTTED, newStyle.getBorderBottom());
- assertEquals(Font.COLOR_RED, ((HSSFCellStyle)newStyle).getFont(wb).getColor());
-
-// OutputStream out = new FileOutputStream("/tmp/56959.xls");
-// try {
-// wb.write(out);
-// } finally {
-// out.close();
-// }
+ try (Workbook wb = new HSSFWorkbook()) {
+ Sheet sheet = wb.createSheet("somesheet");
+
+ Row row = sheet.createRow(0);
+
+ // Create a new font and alter it.
+ Font font = wb.createFont();
+ font.setFontHeightInPoints((short) 24);
+ font.setFontName("Courier New");
+ font.setItalic(true);
+ font.setStrikeout(true);
+ font.setColor(Font.COLOR_RED);
+
+ CellStyle style = wb.createCellStyle();
+ style.setBorderBottom(BorderStyle.DOTTED);
+ style.setFont(font);
+
+ Cell cell = row.createCell(0);
+ cell.setCellStyle(style);
+ cell.setCellValue("testtext");
+
+ Cell newCell = row.createCell(1);
+
+ newCell.setCellStyle(style);
+ newCell.setCellValue("2testtext2");
+
+ CellStyle newStyle = newCell.getCellStyle();
+ assertEquals(BorderStyle.DOTTED, newStyle.getBorderBottom());
+ assertEquals(Font.COLOR_RED, ((HSSFCellStyle) newStyle).getFont(wb).getColor());
+ }
}
@Test
public void test58043() throws IOException {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFCellStyle cellStyle = wb.createCellStyle();
+ try (HSSFWorkbook wb = new HSSFWorkbook()) {
+ HSSFCellStyle cellStyle = wb.createCellStyle();
- assertEquals(0, cellStyle.getRotation());
+ assertEquals(0, cellStyle.getRotation());
- cellStyle.setRotation((short)89);
- assertEquals(89, cellStyle.getRotation());
-
- cellStyle.setRotation((short)90);
- assertEquals(90, cellStyle.getRotation());
-
- cellStyle.setRotation((short)-1);
- assertEquals(-1, cellStyle.getRotation());
-
- cellStyle.setRotation((short)-89);
- assertEquals(-89, cellStyle.getRotation());
-
- cellStyle.setRotation((short)-90);
- assertEquals(-90, cellStyle.getRotation());
-
- cellStyle.setRotation((short)-89);
- assertEquals(-89, cellStyle.getRotation());
-
- // values above 90 are mapped to the correct values for compatibility between HSSF and XSSF
- cellStyle.setRotation((short)179);
- assertEquals(-89, cellStyle.getRotation());
-
- cellStyle.setRotation((short)180);
- assertEquals(-90, cellStyle.getRotation());
-
- wb.close();
+ cellStyle.setRotation((short) 89);
+ assertEquals(89, cellStyle.getRotation());
+
+ cellStyle.setRotation((short) 90);
+ assertEquals(90, cellStyle.getRotation());
+
+ cellStyle.setRotation((short) -1);
+ assertEquals(-1, cellStyle.getRotation());
+
+ cellStyle.setRotation((short) -89);
+ assertEquals(-89, cellStyle.getRotation());
+
+ cellStyle.setRotation((short) -90);
+ assertEquals(-90, cellStyle.getRotation());
+
+ cellStyle.setRotation((short) -89);
+ assertEquals(-89, cellStyle.getRotation());
+
+ // values above 90 are mapped to the correct values for compatibility between HSSF and XSSF
+ cellStyle.setRotation((short) 179);
+ assertEquals(-89, cellStyle.getRotation());
+
+ cellStyle.setRotation((short) 180);
+ assertEquals(-90, cellStyle.getRotation());
+ }
}
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestEmbeddedObjects.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestEmbeddedObjects.java?rev=1872041&r1=1872040&r2=1872041&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestEmbeddedObjects.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestEmbeddedObjects.java Fri Dec 27 23:00:13 2019
@@ -17,46 +17,55 @@
package org.apache.poi.hssf.usermodel;
-import junit.framework.TestCase;
-import org.apache.poi.hssf.HSSFTestDataSamples;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import java.io.IOException;
import java.util.List;
+import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.junit.Test;
+
/**
* Tests for the embedded object fetching support in HSSF
*/
-public class TestEmbeddedObjects extends TestCase{
+public class TestEmbeddedObjects {
+ @Test
public void testReadExistingObject() throws IOException {
- HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("drawings.xls");
- List<HSSFObjectData> list = wb.getAllEmbeddedObjects();
- assertEquals(list.size(), 1);
- HSSFObjectData obj = list.get(0);
- assertNotNull(obj.getObjectData());
- assertNotNull(obj.getDirectory());
- assertNotNull(obj.getOLE2ClassName());
+ try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("drawings.xls")) {
+ List<HSSFObjectData> list = wb.getAllEmbeddedObjects();
+ assertEquals(list.size(), 1);
+ HSSFObjectData obj = list.get(0);
+ assertNotNull(obj.getObjectData());
+ assertNotNull(obj.getDirectory());
+ assertNotNull(obj.getOLE2ClassName());
+ }
}
-
+
/**
* Need to recurse into the shapes to find this one
* See https://github.com/apache/poi/pull/2
*/
+ @Test
public void testReadNestedObject() throws IOException {
- HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("WithCheckBoxes.xls");
- List<HSSFObjectData> list = wb.getAllEmbeddedObjects();
- assertEquals(list.size(), 1);
- HSSFObjectData obj = list.get(0);
- assertNotNull(obj.getObjectData());
- assertNotNull(obj.getOLE2ClassName());
+ try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("WithCheckBoxes.xls")) {
+ List<HSSFObjectData> list = wb.getAllEmbeddedObjects();
+ assertEquals(list.size(), 1);
+ HSSFObjectData obj = list.get(0);
+ assertNotNull(obj.getObjectData());
+ assertNotNull(obj.getOLE2ClassName());
+ }
}
-
+
/**
* One with large numbers of recursivly embedded resources
* See https://github.com/apache/poi/pull/2
*/
+ @Test
public void testReadManyNestedObjects() throws IOException {
- HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("45538_form_Header.xls");
- List<HSSFObjectData> list = wb.getAllEmbeddedObjects();
- assertEquals(list.size(), 40);
+ try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("45538_form_Header.xls")) {
+ List<HSSFObjectData> list = wb.getAllEmbeddedObjects();
+ assertEquals(list.size(), 40);
+ }
}
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestExternalReferenceChange.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestExternalReferenceChange.java?rev=1872041&r1=1872040&r2=1872041&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestExternalReferenceChange.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestExternalReferenceChange.java Fri Dec 27 23:00:13 2019
@@ -16,53 +16,52 @@
==================================================================== */
package org.apache.poi.hssf.usermodel;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
import java.io.IOException;
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.ss.usermodel.CellType;
+import org.junit.Test;
-import junit.framework.TestCase;
-
-public class TestExternalReferenceChange extends TestCase {
+public class TestExternalReferenceChange {
private static final String MAIN_WORKBOOK_FILENAME = "52575_main.xls";
private static final String SOURCE_DUMMY_WORKBOOK_FILENAME = "source_dummy.xls";
private static final String SOURCE_WORKBOOK_FILENAME = "52575_source.xls";
-
- private HSSFWorkbook mainWorkbook;
- private HSSFWorkbook sourceWorkbook;
-
- @Override
- protected void setUp() throws Exception {
- mainWorkbook = HSSFTestDataSamples.openSampleWorkbook(MAIN_WORKBOOK_FILENAME);
- sourceWorkbook = HSSFTestDataSamples.openSampleWorkbook(SOURCE_WORKBOOK_FILENAME);
-
- assertNotNull(mainWorkbook);
- assertNotNull(sourceWorkbook);
- }
-
+
+ @Test
public void testDummyToSource() throws IOException {
- boolean changed = mainWorkbook.changeExternalReference("DOESNOTEXIST", SOURCE_WORKBOOK_FILENAME);
- assertFalse(changed);
-
- changed = mainWorkbook.changeExternalReference(SOURCE_DUMMY_WORKBOOK_FILENAME, SOURCE_WORKBOOK_FILENAME);
- assertTrue(changed);
-
- HSSFSheet lSheet = mainWorkbook.getSheetAt(0);
- HSSFCell lA1Cell = lSheet.getRow(0).getCell(0);
-
- assertEquals(CellType.FORMULA, lA1Cell.getCellType());
-
- HSSFFormulaEvaluator lMainWorkbookEvaluator = new HSSFFormulaEvaluator(mainWorkbook);
- HSSFFormulaEvaluator lSourceEvaluator = new HSSFFormulaEvaluator(sourceWorkbook);
- HSSFFormulaEvaluator.setupEnvironment(
- new String[]{MAIN_WORKBOOK_FILENAME, SOURCE_WORKBOOK_FILENAME},
- new HSSFFormulaEvaluator[] {lMainWorkbookEvaluator, lSourceEvaluator});
-
- assertEquals(CellType.NUMERIC, lMainWorkbookEvaluator.evaluateFormulaCell(lA1Cell));
+ try (HSSFWorkbook mainWorkbook = HSSFTestDataSamples.openSampleWorkbook(MAIN_WORKBOOK_FILENAME);
+ HSSFWorkbook sourceWorkbook = HSSFTestDataSamples.openSampleWorkbook(SOURCE_WORKBOOK_FILENAME)) {
+
+ assertNotNull(mainWorkbook);
+ assertNotNull(sourceWorkbook);
+
+ boolean changed = mainWorkbook.changeExternalReference("DOESNOTEXIST", SOURCE_WORKBOOK_FILENAME);
+ assertFalse(changed);
- assertEquals(20.0d, lA1Cell.getNumericCellValue(), 0.00001d);
+ changed = mainWorkbook.changeExternalReference(SOURCE_DUMMY_WORKBOOK_FILENAME, SOURCE_WORKBOOK_FILENAME);
+ assertTrue(changed);
+ HSSFSheet lSheet = mainWorkbook.getSheetAt(0);
+ HSSFCell lA1Cell = lSheet.getRow(0).getCell(0);
+
+ assertEquals(CellType.FORMULA, lA1Cell.getCellType());
+
+ HSSFFormulaEvaluator lMainWorkbookEvaluator = new HSSFFormulaEvaluator(mainWorkbook);
+ HSSFFormulaEvaluator lSourceEvaluator = new HSSFFormulaEvaluator(sourceWorkbook);
+ HSSFFormulaEvaluator.setupEnvironment(
+ new String[]{MAIN_WORKBOOK_FILENAME, SOURCE_WORKBOOK_FILENAME},
+ new HSSFFormulaEvaluator[]{lMainWorkbookEvaluator, lSourceEvaluator});
+
+ assertEquals(CellType.NUMERIC, lMainWorkbookEvaluator.evaluateFormulaCell(lA1Cell));
+
+ assertEquals(20.0d, lA1Cell.getNumericCellValue(), 0.00001d);
+ }
}
-
+
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestFontDetails.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestFontDetails.java?rev=1872041&r1=1872040&r2=1872041&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestFontDetails.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestFontDetails.java Fri Dec 27 23:00:13 2019
@@ -17,38 +17,41 @@
package org.apache.poi.hssf.usermodel;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
import java.util.Properties;
+import org.junit.Before;
+import org.junit.Test;
+
/**
* Tests the implementation of the FontDetails class.
- *
- * @author Glen Stampoultzis (glens at apache.org)
*/
-public final class TestFontDetails extends TestCase {
- private Properties properties;
+public final class TestFontDetails {
private FontDetails fontDetails;
- @Override
- protected void setUp() {
- properties = new Properties();
+ @Before
+ public void setUp() {
+ Properties properties = new Properties();
properties.setProperty("font.Arial.height", "13");
properties.setProperty("font.Arial.characters", "a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ");
- properties.setProperty("font.Arial.widths", "6, 6, 6, 6, 6, 3, 6, 6, 3, 4, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 7, 9, 6, 5, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 5, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, ");
+ properties.setProperty("font.Arial.widths", "6, 6, 6, 6, 6, 3, 6, 6, 3, 4, 6, 3, 9, 6, 6, 6, 6, 4, 6, 3, 6, 7, 9, 6, 5, 5, 7, 7, 7, 7, 7, 6, 8, 7, 3, 6, 7, 6, 9, 7, 8, 7, 8, 7, 7, 5, 7, 7, 9, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, ");
fontDetails = FontDetails.create("Arial", properties);
}
+ @Test
public void testCreate() {
assertEquals(13, fontDetails.getHeight());
assertEquals(6, fontDetails.getCharWidth('a'));
assertEquals(3, fontDetails.getCharWidth('f'));
}
+ @Test
public void testGetStringWidth() {
assertEquals(9, fontDetails.getStringWidth("af"));
}
+ @Test
public void testGetCharWidth() {
assertEquals(6, fontDetails.getCharWidth('a'));
assertEquals(9, fontDetails.getCharWidth('='));
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorDocs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorDocs.java?rev=1872041&r1=1872040&r2=1872041&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorDocs.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorDocs.java Fri Dec 27 23:00:13 2019
@@ -17,107 +17,112 @@
package org.apache.poi.hssf.usermodel;
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
-
-import junit.framework.TestCase;
+import org.junit.Test;
/**
* Tests to show that our documentation at
* http://poi.apache.org/hssf/eval.html
* all actually works as we'd expect them to
*/
-public final class TestFormulaEvaluatorDocs extends TestCase {
+public final class TestFormulaEvaluatorDocs {
/**
* http://poi.apache.org/hssf/eval.html#EvaluateAll
*/
- public void testEvaluateAll() {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet s1 = wb.createSheet();
- HSSFSheet s2 = wb.createSheet();
- wb.setSheetName(0, "S1");
- wb.setSheetName(1, "S2");
-
- HSSFRow s1r1 = s1.createRow(0);
- HSSFRow s1r2 = s1.createRow(1);
- HSSFRow s2r1 = s2.createRow(0);
-
- HSSFCell s1r1c1 = s1r1.createCell(0);
- HSSFCell s1r1c2 = s1r1.createCell(1);
- HSSFCell s1r1c3 = s1r1.createCell(2);
- s1r1c1.setCellValue(22.3);
- s1r1c2.setCellValue(33.4);
- s1r1c3.setCellFormula("SUM(A1:B1)");
-
- HSSFCell s1r2c1 = s1r2.createCell(0);
- HSSFCell s1r2c2 = s1r2.createCell(1);
- HSSFCell s1r2c3 = s1r2.createCell(2);
- s1r2c1.setCellValue(-1.2);
- s1r2c2.setCellValue(-3.4);
- s1r2c3.setCellFormula("SUM(A2:B2)");
-
- HSSFCell s2r1c1 = s2r1.createCell(0);
- s2r1c1.setCellFormula("S1!A1");
-
- // Not evaluated yet
- assertEquals(0.0, s1r1c3.getNumericCellValue(), 0);
- assertEquals(0.0, s1r2c3.getNumericCellValue(), 0);
- assertEquals(0.0, s2r1c1.getNumericCellValue(), 0);
-
- // Do a full evaluate, as per our docs
- // uses evaluateFormulaCell()
- for(Sheet sheet : wb) {
- HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(wb);
- for(Row r : sheet) {
- for(Cell c : r) {
- if(c.getCellType() == CellType.FORMULA) {
- evaluator.evaluateFormulaCell(c);
-
- // For testing - all should be numeric
- assertEquals(CellType.NUMERIC, evaluator.evaluateFormulaCell(c));
+ @Test
+ public void testEvaluateAll() throws IOException {
+ try (HSSFWorkbook wb = new HSSFWorkbook()) {
+ HSSFSheet s1 = wb.createSheet();
+ HSSFSheet s2 = wb.createSheet();
+ wb.setSheetName(0, "S1");
+ wb.setSheetName(1, "S2");
+
+ HSSFRow s1r1 = s1.createRow(0);
+ HSSFRow s1r2 = s1.createRow(1);
+ HSSFRow s2r1 = s2.createRow(0);
+
+ HSSFCell s1r1c1 = s1r1.createCell(0);
+ HSSFCell s1r1c2 = s1r1.createCell(1);
+ HSSFCell s1r1c3 = s1r1.createCell(2);
+ s1r1c1.setCellValue(22.3);
+ s1r1c2.setCellValue(33.4);
+ s1r1c3.setCellFormula("SUM(A1:B1)");
+
+ HSSFCell s1r2c1 = s1r2.createCell(0);
+ HSSFCell s1r2c2 = s1r2.createCell(1);
+ HSSFCell s1r2c3 = s1r2.createCell(2);
+ s1r2c1.setCellValue(-1.2);
+ s1r2c2.setCellValue(-3.4);
+ s1r2c3.setCellFormula("SUM(A2:B2)");
+
+ HSSFCell s2r1c1 = s2r1.createCell(0);
+ s2r1c1.setCellFormula("S1!A1");
+
+ // Not evaluated yet
+ assertEquals(0.0, s1r1c3.getNumericCellValue(), 0);
+ assertEquals(0.0, s1r2c3.getNumericCellValue(), 0);
+ assertEquals(0.0, s2r1c1.getNumericCellValue(), 0);
+
+ // Do a full evaluate, as per our docs
+ // uses evaluateFormulaCell()
+ for (Sheet sheet : wb) {
+ HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(wb);
+ for (Row r : sheet) {
+ for (Cell c : r) {
+ if (c.getCellType() == CellType.FORMULA) {
+ evaluator.evaluateFormulaCell(c);
+
+ // For testing - all should be numeric
+ assertEquals(CellType.NUMERIC, evaluator.evaluateFormulaCell(c));
+ }
}
}
}
- }
-
- // Check now as expected
- assertEquals(55.7, wb.getSheetAt(0).getRow(0).getCell(2).getNumericCellValue(), 0);
- assertEquals("SUM(A1:B1)", wb.getSheetAt(0).getRow(0).getCell(2).getCellFormula());
- assertEquals(CellType.FORMULA, wb.getSheetAt(0).getRow(0).getCell(2).getCellType());
-
- assertEquals(-4.6, wb.getSheetAt(0).getRow(1).getCell(2).getNumericCellValue(), 0);
- assertEquals("SUM(A2:B2)", wb.getSheetAt(0).getRow(1).getCell(2).getCellFormula());
- assertEquals(CellType.FORMULA, wb.getSheetAt(0).getRow(1).getCell(2).getCellType());
-
- assertEquals(22.3, wb.getSheetAt(1).getRow(0).getCell(0).getNumericCellValue(), 0);
- assertEquals("'S1'!A1", wb.getSheetAt(1).getRow(0).getCell(0).getCellFormula());
- assertEquals(CellType.FORMULA, wb.getSheetAt(1).getRow(0).getCell(0).getCellType());
-
-
- // Now do the alternate call, which zaps the formulas
- // uses evaluateInCell()
- for(Sheet sheet : wb) {
- HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(wb);
-
- for(Row r : sheet) {
- for(Cell c : r) {
- if(c.getCellType() == CellType.FORMULA) {
- evaluator.evaluateInCell(c);
+
+ // Check now as expected
+ assertEquals(55.7, wb.getSheetAt(0).getRow(0).getCell(2).getNumericCellValue(), 0);
+ assertEquals("SUM(A1:B1)", wb.getSheetAt(0).getRow(0).getCell(2).getCellFormula());
+ assertEquals(CellType.FORMULA, wb.getSheetAt(0).getRow(0).getCell(2).getCellType());
+
+ assertEquals(-4.6, wb.getSheetAt(0).getRow(1).getCell(2).getNumericCellValue(), 0);
+ assertEquals("SUM(A2:B2)", wb.getSheetAt(0).getRow(1).getCell(2).getCellFormula());
+ assertEquals(CellType.FORMULA, wb.getSheetAt(0).getRow(1).getCell(2).getCellType());
+
+ assertEquals(22.3, wb.getSheetAt(1).getRow(0).getCell(0).getNumericCellValue(), 0);
+ assertEquals("'S1'!A1", wb.getSheetAt(1).getRow(0).getCell(0).getCellFormula());
+ assertEquals(CellType.FORMULA, wb.getSheetAt(1).getRow(0).getCell(0).getCellType());
+
+
+ // Now do the alternate call, which zaps the formulas
+ // uses evaluateInCell()
+ for (Sheet sheet : wb) {
+ HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(wb);
+
+ for (Row r : sheet) {
+ for (Cell c : r) {
+ if (c.getCellType() == CellType.FORMULA) {
+ evaluator.evaluateInCell(c);
+ }
}
}
}
+
+ assertEquals(55.7, wb.getSheetAt(0).getRow(0).getCell(2).getNumericCellValue(), 0);
+ assertEquals(CellType.NUMERIC, wb.getSheetAt(0).getRow(0).getCell(2).getCellType());
+
+ assertEquals(-4.6, wb.getSheetAt(0).getRow(1).getCell(2).getNumericCellValue(), 0);
+ assertEquals(CellType.NUMERIC, wb.getSheetAt(0).getRow(1).getCell(2).getCellType());
+
+ assertEquals(22.3, wb.getSheetAt(1).getRow(0).getCell(0).getNumericCellValue(), 0);
+ assertEquals(CellType.NUMERIC, wb.getSheetAt(1).getRow(0).getCell(0).getCellType());
}
-
- assertEquals(55.7, wb.getSheetAt(0).getRow(0).getCell(2).getNumericCellValue(), 0);
- assertEquals(CellType.NUMERIC, wb.getSheetAt(0).getRow(0).getCell(2).getCellType());
-
- assertEquals(-4.6, wb.getSheetAt(0).getRow(1).getCell(2).getNumericCellValue(), 0);
- assertEquals(CellType.NUMERIC, wb.getSheetAt(0).getRow(1).getCell(2).getCellType());
-
- assertEquals(22.3, wb.getSheetAt(1).getRow(0).getCell(0).getNumericCellValue(), 0);
- assertEquals(CellType.NUMERIC, wb.getSheetAt(1).getRow(0).getCell(0).getCellType());
}
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java?rev=1872041&r1=1872040&r2=1872041&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java Fri Dec 27 23:00:13 2019
@@ -20,13 +20,15 @@ package org.apache.poi.hssf.usermodel;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.List;
+import java.util.ListIterator;
import org.apache.poi.hssf.HSSFITestDataProvider;
import org.apache.poi.hssf.HSSFTestDataSamples;
@@ -67,22 +69,22 @@ public final class TestHSSFCell extends
Date date = cal.getTime();
// first check a file with 1900 Date Windowing
- HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("1900DateWindowing.xls");
- HSSFSheet sheet = wb.getSheetAt(0);
+ try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("1900DateWindowing.xls")) {
+ HSSFSheet sheet = wb.getSheetAt(0);
- assertEquals("Date from file using 1900 Date Windowing",
- date.getTime(),
- sheet.getRow(0).getCell(0).getDateCellValue().getTime());
- wb.close();
+ assertEquals("Date from file using 1900 Date Windowing",
+ date.getTime(),
+ sheet.getRow(0).getCell(0).getDateCellValue().getTime());
+ }
// now check a file with 1904 Date Windowing
- wb = HSSFTestDataSamples.openSampleWorkbook("1904DateWindowing.xls");
- sheet = wb.getSheetAt(0);
+ try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("1904DateWindowing.xls")) {
+ HSSFSheet sheet = wb.getSheetAt(0);
- assertEquals("Date from file using 1904 Date Windowing",
- date.getTime(),
- sheet.getRow(0).getCell(0).getDateCellValue().getTime());
- wb.close();
+ assertEquals("Date from file using 1904 Date Windowing",
+ date.getTime(),
+ sheet.getRow(0).getCell(0).getDateCellValue().getTime());
+ }
}
@@ -99,26 +101,26 @@ public final class TestHSSFCell extends
Date date = cal.getTime();
// first check a file with 1900 Date Windowing
- HSSFWorkbook wb1 = HSSFTestDataSamples.openSampleWorkbook("1900DateWindowing.xls");
+ try (HSSFWorkbook wb1 = HSSFTestDataSamples.openSampleWorkbook("1900DateWindowing.xls")) {
- setCell(wb1, 0, 1, date);
- HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb1);
+ setCell(wb1, 0, 1, date);
+ try (HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb1)) {
- assertEquals("Date from file using 1900 Date Windowing",
- date.getTime(),
- readCell(wb2, 0, 1).getTime());
- wb1.close();
- wb2.close();
+ assertEquals("Date from file using 1900 Date Windowing",
+ date.getTime(),
+ readCell(wb2, 0, 1).getTime());
+ }
+ }
// now check a file with 1904 Date Windowing
- wb1 = HSSFTestDataSamples.openSampleWorkbook("1904DateWindowing.xls");
- setCell(wb1, 0, 1, date);
- wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb1);
- assertEquals("Date from file using 1900 Date Windowing",
- date.getTime(),
- readCell(wb2, 0, 1).getTime());
- wb1.close();
- wb2.close();
+ try (HSSFWorkbook wb1 = HSSFTestDataSamples.openSampleWorkbook("1904DateWindowing.xls")) {
+ setCell(wb1, 0, 1, date);
+ try (HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb1)) {
+ assertEquals("Date from file using 1900 Date Windowing",
+ date.getTime(),
+ readCell(wb2, 0, 1).getTime());
+ }
+ }
}
private static void setCell(HSSFWorkbook workbook, int rowIdx, int colIdx, Date date) {
@@ -145,93 +147,75 @@ public final class TestHSSFCell extends
@Test
public void testActiveCell() throws IOException {
//read in sample
- HSSFWorkbook wb1 = HSSFTestDataSamples.openSampleWorkbook("Simple.xls");
+ try (HSSFWorkbook wb1 = HSSFTestDataSamples.openSampleWorkbook("Simple.xls")) {
- //check initial position
- HSSFSheet umSheet = wb1.getSheetAt(0);
- InternalSheet s = umSheet.getSheet();
- assertEquals("Initial active cell should be in col 0",
- (short) 0, s.getActiveCellCol());
- assertEquals("Initial active cell should be on row 1",
- 1, s.getActiveCellRow());
-
- //modify position through HSSFCell
- HSSFCell cell = umSheet.createRow(3).createCell(2);
- cell.setAsActiveCell();
- assertEquals("After modify, active cell should be in col 2",
- (short) 2, s.getActiveCellCol());
- assertEquals("After modify, active cell should be on row 3",
- 3, s.getActiveCellRow());
-
- //write book to temp file; read and verify that position is serialized
- HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb1);
- wb1.close();
-
- umSheet = wb2.getSheetAt(0);
- s = umSheet.getSheet();
-
- assertEquals("After serialize, active cell should be in col 2",
- (short) 2, s.getActiveCellCol());
- assertEquals("After serialize, active cell should be on row 3",
- 3, s.getActiveCellRow());
-
- wb2.close();
+ //check initial position
+ HSSFSheet umSheet = wb1.getSheetAt(0);
+ InternalSheet s = umSheet.getSheet();
+ assertEquals("Initial active cell should be in col 0",
+ (short) 0, s.getActiveCellCol());
+ assertEquals("Initial active cell should be on row 1",
+ 1, s.getActiveCellRow());
+
+ //modify position through HSSFCell
+ HSSFCell cell = umSheet.createRow(3).createCell(2);
+ cell.setAsActiveCell();
+ assertEquals("After modify, active cell should be in col 2",
+ (short) 2, s.getActiveCellCol());
+ assertEquals("After modify, active cell should be on row 3",
+ 3, s.getActiveCellRow());
+
+ //write book to temp file; read and verify that position is serialized
+ try (HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb1)) {
+ umSheet = wb2.getSheetAt(0);
+ s = umSheet.getSheet();
+
+ assertEquals("After serialize, active cell should be in col 2",
+ (short) 2, s.getActiveCellCol());
+ assertEquals("After serialize, active cell should be on row 3",
+ 3, s.getActiveCellRow());
+ }
+ }
}
@Test
public void testActiveCellBug56114() throws IOException {
- Workbook wb = new HSSFWorkbook();
- Sheet sh = wb.createSheet();
+ try (Workbook wb = new HSSFWorkbook()) {
+ Sheet sh = wb.createSheet();
+
+ sh.createRow(0);
+ sh.createRow(1);
+ sh.createRow(2);
+ sh.createRow(3);
+
+ Cell cell = sh.getRow(1).createCell(3);
+ sh.getRow(3).createCell(3);
- sh.createRow(0);
- sh.createRow(1);
- sh.createRow(2);
- sh.createRow(3);
-
- Cell cell = sh.getRow(1).createCell(3);
- sh.getRow(3).createCell(3);
-
- assertEquals(0, ((HSSFSheet)wb.getSheetAt(0)).getSheet().getActiveCellRow());
- assertEquals(0, ((HSSFSheet)wb.getSheetAt(0)).getSheet().getActiveCellCol());
-
- cell.setAsActiveCell();
- cell.setCellValue("this should be active");
-
- assertEquals(1, ((HSSFSheet)wb.getSheetAt(0)).getSheet().getActiveCellRow());
- assertEquals(3, ((HSSFSheet)wb.getSheetAt(0)).getSheet().getActiveCellCol());
-
- /*OutputStream fos = new FileOutputStream("c:/temp/56114.xls");
- try {
- wb.write(fos);
- } finally {
- fos.close();
- }*/
-
- Workbook wbBack = _testDataProvider.writeOutAndReadBack(wb);
- wb.close();
-
- assertEquals(1, ((HSSFSheet)wbBack.getSheetAt(0)).getSheet().getActiveCellRow());
- assertEquals(3, ((HSSFSheet)wbBack.getSheetAt(0)).getSheet().getActiveCellCol());
-
- wbBack.getSheetAt(0).getRow(3).getCell(3).setAsActiveCell();
-
- assertEquals(3, ((HSSFSheet)wbBack.getSheetAt(0)).getSheet().getActiveCellRow());
- assertEquals(3, ((HSSFSheet)wbBack.getSheetAt(0)).getSheet().getActiveCellCol());
-
- /*fos = new FileOutputStream("c:/temp/56114a.xls");
- try {
- wb.write(fos);
- } finally {
- fos.close();
- }*/
-
- Workbook wbBack2 = _testDataProvider.writeOutAndReadBack(wbBack);
- wbBack.close();
-
- assertEquals(3, ((HSSFSheet)wbBack2.getSheetAt(0)).getSheet().getActiveCellRow());
- assertEquals(3, ((HSSFSheet)wbBack2.getSheetAt(0)).getSheet().getActiveCellCol());
- wbBack2.close();
+ assertEquals(0, ((HSSFSheet) wb.getSheetAt(0)).getSheet().getActiveCellRow());
+ assertEquals(0, ((HSSFSheet) wb.getSheetAt(0)).getSheet().getActiveCellCol());
+
+ cell.setAsActiveCell();
+ cell.setCellValue("this should be active");
+
+ assertEquals(1, ((HSSFSheet) wb.getSheetAt(0)).getSheet().getActiveCellRow());
+ assertEquals(3, ((HSSFSheet) wb.getSheetAt(0)).getSheet().getActiveCellCol());
+
+ try (Workbook wbBack = _testDataProvider.writeOutAndReadBack(wb)) {
+ assertEquals(1, ((HSSFSheet) wbBack.getSheetAt(0)).getSheet().getActiveCellRow());
+ assertEquals(3, ((HSSFSheet) wbBack.getSheetAt(0)).getSheet().getActiveCellCol());
+
+ wbBack.getSheetAt(0).getRow(3).getCell(3).setAsActiveCell();
+
+ assertEquals(3, ((HSSFSheet) wbBack.getSheetAt(0)).getSheet().getActiveCellRow());
+ assertEquals(3, ((HSSFSheet) wbBack.getSheetAt(0)).getSheet().getActiveCellCol());
+
+ try (Workbook wbBack2 = _testDataProvider.writeOutAndReadBack(wbBack)) {
+ assertEquals(3, ((HSSFSheet) wbBack2.getSheetAt(0)).getSheet().getActiveCellRow());
+ assertEquals(3, ((HSSFSheet) wbBack2.getSheetAt(0)).getSheet().getActiveCellCol());
+ }
+ }
+ }
}
/**
@@ -239,20 +223,18 @@ public final class TestHSSFCell extends
*/
@Test
public void testWithHyperlink() throws IOException {
+ try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("WithHyperlink.xls")) {
- HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("WithHyperlink.xls");
-
- HSSFSheet sheet = wb.getSheetAt(0);
- HSSFCell cell = sheet.getRow(4).getCell(0);
- HSSFHyperlink link = cell.getHyperlink();
- assertNotNull(link);
-
- assertEquals("Foo", link.getLabel());
- assertEquals("http://poi.apache.org/", link.getAddress());
- assertEquals(4, link.getFirstRow());
- assertEquals(0, link.getFirstColumn());
-
- wb.close();
+ HSSFSheet sheet = wb.getSheetAt(0);
+ HSSFCell cell = sheet.getRow(4).getCell(0);
+ HSSFHyperlink link = cell.getHyperlink();
+ assertNotNull(link);
+
+ assertEquals("Foo", link.getLabel());
+ assertEquals("http://poi.apache.org/", link.getAddress());
+ assertEquals(4, link.getFirstRow());
+ assertEquals(0, link.getFirstColumn());
+ }
}
/**
@@ -260,28 +242,26 @@ public final class TestHSSFCell extends
*/
@Test
public void testWithTwoHyperlinks() throws IOException {
+ try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("WithTwoHyperLinks.xls")) {
- HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("WithTwoHyperLinks.xls");
+ HSSFSheet sheet = wb.getSheetAt(0);
- HSSFSheet sheet = wb.getSheetAt(0);
-
- HSSFCell cell1 = sheet.getRow(4).getCell(0);
- HSSFHyperlink link1 = cell1.getHyperlink();
- assertNotNull(link1);
- assertEquals("Foo", link1.getLabel());
- assertEquals("http://poi.apache.org/", link1.getAddress());
- assertEquals(4, link1.getFirstRow());
- assertEquals(0, link1.getFirstColumn());
-
- HSSFCell cell2 = sheet.getRow(8).getCell(1);
- HSSFHyperlink link2 = cell2.getHyperlink();
- assertNotNull(link2);
- assertEquals("Bar", link2.getLabel());
- assertEquals("http://poi.apache.org/hssf/", link2.getAddress());
- assertEquals(8, link2.getFirstRow());
- assertEquals(1, link2.getFirstColumn());
-
- wb.close();
+ HSSFCell cell1 = sheet.getRow(4).getCell(0);
+ HSSFHyperlink link1 = cell1.getHyperlink();
+ assertNotNull(link1);
+ assertEquals("Foo", link1.getLabel());
+ assertEquals("http://poi.apache.org/", link1.getAddress());
+ assertEquals(4, link1.getFirstRow());
+ assertEquals(0, link1.getFirstColumn());
+
+ HSSFCell cell2 = sheet.getRow(8).getCell(1);
+ HSSFHyperlink link2 = cell2.getHyperlink();
+ assertNotNull(link2);
+ assertEquals("Bar", link2.getLabel());
+ assertEquals("http://poi.apache.org/hssf/", link2.getAddress());
+ assertEquals(8, link2.getFirstRow());
+ assertEquals(1, link2.getFirstColumn());
+ }
}
/**
@@ -290,47 +270,45 @@ public final class TestHSSFCell extends
*/
@Test
public void testCellStyleWorkbookMatch() throws IOException {
- HSSFWorkbook wbA = new HSSFWorkbook();
- HSSFWorkbook wbB = new HSSFWorkbook();
+ try (HSSFWorkbook wbA = new HSSFWorkbook();
+ HSSFWorkbook wbB = new HSSFWorkbook()) {
- HSSFCellStyle styA = wbA.createCellStyle();
- HSSFCellStyle styB = wbB.createCellStyle();
+ HSSFCellStyle styA = wbA.createCellStyle();
+ HSSFCellStyle styB = wbB.createCellStyle();
- styA.verifyBelongsToWorkbook(wbA);
- styB.verifyBelongsToWorkbook(wbB);
- try {
- styA.verifyBelongsToWorkbook(wbB);
- fail("expected IllegalArgumentException");
- } catch (IllegalArgumentException e) {
- // expected during successful test
- }
- try {
- styB.verifyBelongsToWorkbook(wbA);
- fail("expected IllegalArgumentException");
- } catch (IllegalArgumentException e) {
- // expected during successful test
- }
-
- Cell cellA = wbA.createSheet().createRow(0).createCell(0);
- Cell cellB = wbB.createSheet().createRow(0).createCell(0);
-
- cellA.setCellStyle(styA);
- cellB.setCellStyle(styB);
- try {
- cellA.setCellStyle(styB);
- fail("expected IllegalArgumentException");
- } catch (IllegalArgumentException e) {
- // expected during successful test
- }
- try {
- cellB.setCellStyle(styA);
- fail("expected IllegalArgumentException");
- } catch (IllegalArgumentException e) {
- // expected during successful test
- }
-
- wbB.close();
- wbA.close();
+ styA.verifyBelongsToWorkbook(wbA);
+ styB.verifyBelongsToWorkbook(wbB);
+ try {
+ styA.verifyBelongsToWorkbook(wbB);
+ fail("expected IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected during successful test
+ }
+ try {
+ styB.verifyBelongsToWorkbook(wbA);
+ fail("expected IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected during successful test
+ }
+
+ Cell cellA = wbA.createSheet().createRow(0).createCell(0);
+ Cell cellB = wbB.createSheet().createRow(0).createCell(0);
+
+ cellA.setCellStyle(styA);
+ cellB.setCellStyle(styB);
+ try {
+ cellA.setCellStyle(styB);
+ fail("expected IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected during successful test
+ }
+ try {
+ cellB.setCellStyle(styA);
+ fail("expected IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected during successful test
+ }
+ }
}
/**
@@ -341,47 +319,44 @@ public final class TestHSSFCell extends
*/
@Test
public void testCachedTypeChange() throws IOException {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sheet = wb.createSheet("Sheet1");
- Cell cell = sheet.createRow(0).createCell(0);
- cell.setCellFormula("A1");
- cell.setCellValue("abc");
- confirmStringRecord(sheet, true);
- cell.setCellValue(123);
- Record[] recs = RecordInspector.getRecords(sheet, 0);
- if (recs.length == 28 && recs[23] instanceof StringRecord) {
- wb.close();
- fail("Identified bug - leftover StringRecord");
- }
- confirmStringRecord(sheet, false);
-
- // string to error code
- cell.setCellValue("abc");
- confirmStringRecord(sheet, true);
- cell.setCellErrorValue(FormulaError.REF.getCode());
- confirmStringRecord(sheet, false);
-
- // string to boolean
- cell.setCellValue("abc");
- confirmStringRecord(sheet, true);
- cell.setCellValue(false);
- confirmStringRecord(sheet, false);
- wb.close();
+ try (HSSFWorkbook wb = new HSSFWorkbook()) {
+ HSSFSheet sheet = wb.createSheet("Sheet1");
+ Cell cell = sheet.createRow(0).createCell(0);
+ cell.setCellFormula("A1");
+ cell.setCellValue("abc");
+ confirmStringRecord(sheet, true);
+ cell.setCellValue(123);
+
+ final List<Record> recs = new ArrayList<>();
+ sheet.getSheet().visitContainedRecords(recs::add, 0);
+ assertFalse("Identified bug - leftover StringRecord", recs.size() == 28 && recs.get(23) instanceof StringRecord);
+ confirmStringRecord(sheet, false);
+
+ // string to error code
+ cell.setCellValue("abc");
+ confirmStringRecord(sheet, true);
+ cell.setCellErrorValue(FormulaError.REF.getCode());
+ confirmStringRecord(sheet, false);
+
+ // string to boolean
+ cell.setCellValue("abc");
+ confirmStringRecord(sheet, true);
+ cell.setCellValue(false);
+ confirmStringRecord(sheet, false);
+ }
}
private static void confirmStringRecord(HSSFSheet sheet, boolean isPresent) {
- Record[] recs = RecordInspector.getRecords(sheet, 0);
- assertEquals(isPresent ? 28 : 27, recs.length);
- int index = 22;
- Record fr = recs[index++];
- assertEquals(FormulaRecord.class, fr.getClass());
+ List<Record> recs = new ArrayList<>();
+ sheet.getSheet().visitContainedRecords(recs::add, 0);
+ assertEquals(isPresent ? 28 : 27, recs.size());
+
+ ListIterator<Record> iter = recs.listIterator(22);
+ assertEquals(FormulaRecord.class, iter.next().getClass());
if (isPresent) {
- assertEquals(StringRecord.class, recs[index++].getClass());
- } else {
- assertNotSame(StringRecord.class, recs[index].getClass());
+ assertEquals(StringRecord.class, iter.next().getClass());
}
- Record dbcr = recs[index];
- assertEquals(DBCellRecord.class, dbcr.getClass());
+ assertEquals(DBCellRecord.class, iter.next().getClass());
}
/**
@@ -389,86 +364,87 @@ public final class TestHSSFCell extends
*/
@Test
public void testReadNaN() throws IOException {
- HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("49761.xls");
- assertNotNull(wb);
- wb.close();
+ try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("49761.xls")) {
+ assertNotNull(wb);
+ }
}
@Test
public void testHSSFCell() throws IOException {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sheet = wb.createSheet();
- HSSFRow row = sheet.createRow(0);
- row.createCell(0);
- HSSFCell cell = new HSSFCell(wb, sheet, 0, (short)0);
- assertNotNull(cell);
- wb.close();
+ try (HSSFWorkbook wb = new HSSFWorkbook()) {
+ HSSFSheet sheet = wb.createSheet();
+ HSSFRow row = sheet.createRow(0);
+ row.createCell(0);
+ HSSFCell cell = new HSSFCell(wb, sheet, 0, (short) 0);
+ assertNotNull(cell);
+ }
}
@Test
public void testDeprecatedMethods() throws IOException {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sheet = wb.createSheet();
- HSSFRow row = sheet.createRow(0);
- HSSFCell cell = row.createCell(0);
-
- // cover some deprecated methods and other smaller stuff...
- assertEquals(wb.getWorkbook(), cell.getBoundWorkbook());
-
- try {
- cell.getCachedFormulaResultType();
- fail("Should catch exception");
- } catch (IllegalStateException e) {
- // expected here
- }
-
- cell.removeCellComment();
- cell.removeCellComment();
-
- wb.close();
+ try (HSSFWorkbook wb = new HSSFWorkbook()) {
+ HSSFSheet sheet = wb.createSheet();
+ HSSFRow row = sheet.createRow(0);
+ HSSFCell cell = row.createCell(0);
+
+ // cover some deprecated methods and other smaller stuff...
+ assertEquals(wb.getWorkbook(), cell.getBoundWorkbook());
+
+ try {
+ cell.getCachedFormulaResultType();
+ fail("Should catch exception");
+ } catch (IllegalStateException e) {
+ // expected here
+ }
+
+ cell.removeCellComment();
+ cell.removeCellComment();
+ }
}
@Test
public void testCellType() throws IOException {
- Workbook wb = _testDataProvider.createWorkbook();
- Sheet sheet = wb.createSheet();
- Row row = sheet.createRow(0);
- Cell cell = row.createCell(0);
-
- cell.setBlank();
- assertNull(null, cell.getDateCellValue());
- assertFalse(cell.getBooleanCellValue());
- assertEquals("", cell.toString());
-
- cell.setCellType(CellType.STRING);
- assertEquals("", cell.toString());
- cell.setCellValue(1.2);
- assertEquals("1.2", cell.toString());
- cell.setCellType(CellType.BOOLEAN);
- assertEquals("TRUE", cell.toString());
- cell.setCellType(CellType.BOOLEAN);
- cell.setCellValue("" + FormulaError.VALUE.name());
- assertEquals(CellType.STRING, cell.getCellType());
- cell.setCellType(CellType.BOOLEAN);
- assertEquals("FALSE", cell.toString());
- cell.setCellValue(1.2);
- assertEquals("1.2", cell.toString());
- cell.setCellType(CellType.BOOLEAN);
- cell.setCellType(CellType.STRING);
- cell.setCellType(CellType.ERROR);
- cell.setCellType(CellType.STRING);
- cell.setCellValue(1.2);
- cell.setCellType(CellType.STRING);
- assertEquals("1.2", cell.toString());
-
- cell.setCellValue((String)null);
- cell.setCellValue((RichTextString)null);
- wb.close();
+ try (Workbook wb = _testDataProvider.createWorkbook()) {
+ Sheet sheet = wb.createSheet();
+ Row row = sheet.createRow(0);
+ Cell cell = row.createCell(0);
+
+ cell.setBlank();
+ assertNull(null, cell.getDateCellValue());
+ assertFalse(cell.getBooleanCellValue());
+ assertEquals("", cell.toString());
+
+ cell.setCellType(CellType.STRING);
+ assertEquals("", cell.toString());
+ cell.setCellValue(1.2);
+ assertEquals("1.2", cell.toString());
+ cell.setCellType(CellType.BOOLEAN);
+ assertEquals("TRUE", cell.toString());
+ cell.setCellType(CellType.BOOLEAN);
+ cell.setCellValue("" + FormulaError.VALUE.name());
+ assertEquals(CellType.STRING, cell.getCellType());
+ cell.setCellType(CellType.BOOLEAN);
+ assertEquals("FALSE", cell.toString());
+ cell.setCellValue(1.2);
+ assertEquals("1.2", cell.toString());
+ cell.setCellType(CellType.BOOLEAN);
+ cell.setCellType(CellType.STRING);
+ cell.setCellType(CellType.ERROR);
+ cell.setCellType(CellType.STRING);
+ cell.setCellValue(1.2);
+ cell.setCellType(CellType.STRING);
+ assertEquals("1.2", cell.toString());
+
+ cell.setCellValue((String) null);
+ cell.setCellValue((RichTextString) null);
+ }
}
@Test(expected = IllegalStateException.class)
- public void getErrorCellValue_throwsISE_onABlankCell() {
- Cell cell = new HSSFWorkbook().createSheet().createRow(0).createCell(0);
- cell.getErrorCellValue();
+ public void getErrorCellValue_throwsISE_onABlankCell() throws IOException {
+ try (HSSFWorkbook wb = new HSSFWorkbook()) {
+ Cell cell = wb.createSheet().createRow(0).createCell(0);
+ cell.getErrorCellValue();
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org