aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases/org
diff options
context:
space:
mode:
authorJosh Micich <josh@apache.org>2008-12-04 00:08:45 +0000
committerJosh Micich <josh@apache.org>2008-12-04 00:08:45 +0000
commitdc9a89407219929e7cbba5c11d9d0c24526ed989 (patch)
tree0ea26fabe4b3b5c7042c0388e221e002b1675fed /src/testcases/org
parentdb07c3ed7eff2e638a5cbb0ab4a79ff4e2be889e (diff)
downloadpoi-dc9a89407219929e7cbba5c11d9d0c24526ed989.tar.gz
poi-dc9a89407219929e7cbba5c11d9d0c24526ed989.zip
re-arranging methods getRecordSize and getDataSize in Record / StandardRecord / ContinuableRecord hierarchy
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@723161 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org')
-rw-r--r--src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java95
1 files changed, 45 insertions, 50 deletions
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
index 805e5a4b29..4dcf3c6f59 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
@@ -30,12 +30,13 @@ import org.apache.poi.hssf.model.HSSFFormulaParser;
import org.apache.poi.hssf.model.Sheet;
import org.apache.poi.hssf.record.NameRecord;
import org.apache.poi.hssf.record.Record;
+import org.apache.poi.hssf.record.RecordBase;
import org.apache.poi.hssf.record.RecordFormatException;
import org.apache.poi.hssf.record.formula.Area3DPtg;
import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.TempFile;
/**
- *
+ * Tests for {@link HSSFWorkbook}
*/
public final class TestHSSFWorkbook extends TestCase {
private static HSSFWorkbook openSample(String sampleFileName) {
@@ -75,31 +76,25 @@ public final class TestHSSFWorkbook extends TestCase {
b.createSheet("Sheet1");
b.createSheet();
b.createSheet("name1");
- try
- {
+ try {
b.createSheet("name1");
fail();
- }
- catch ( IllegalArgumentException pass )
- {
+ } catch (IllegalArgumentException pass) {
+ // expected during successful test
}
b.createSheet();
- try
- {
- b.setSheetName( 3, "name1" );
+ try {
+ b.setSheetName(3, "name1");
fail();
- }
- catch ( IllegalArgumentException pass )
- {
+ } catch (IllegalArgumentException pass) {
+ // expected during successful test
}
- try
- {
- b.setSheetName( 3, "name1" );
+ try {
+ b.setSheetName(3, "name1");
fail();
- }
- catch ( IllegalArgumentException pass )
- {
+ } catch (IllegalArgumentException pass) {
+ // expected during successful test
}
b.setSheetName( 3, "name2" );
@@ -383,17 +378,17 @@ public final class TestHSSFWorkbook extends TestCase {
assertEquals("active", expectedActive, sheet.isActive());
assertEquals("selected", expectedSelected, sheet.isSelected());
}
-
+
/**
* If Sheet.getSize() returns a different result to Sheet.serialize(), this will cause the BOF
- * records to be written with invalid offset indexes. Excel does not like this, and such
+ * records to be written with invalid offset indexes. Excel does not like this, and such
* errors are particularly hard to track down. This test ensures that HSSFWorkbook throws
* a specific exception as soon as the situation is detected. See bugzilla 45066
*/
public void testSheetSerializeSizeMismatch_bug45066() {
HSSFWorkbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("Sheet1").getSheet();
- List sheetRecords = sheet.getRecords();
+ List<RecordBase> sheetRecords = sheet.getRecords();
// one way (of many) to cause the discrepancy is with a badly behaved record:
sheetRecords.add(new BadlyBehavedRecord());
// There is also much logic inside Sheet that (if buggy) might also cause the discrepancy
@@ -405,98 +400,98 @@ public final class TestHSSFWorkbook extends TestCase {
assertTrue(e.getMessage().startsWith("Actual serialized sheet size"));
}
}
-
+
/**
* Checks that us and HSSFName play nicely with named ranges
* that point to deleted sheets
*/
- public void testNamesToDeleteSheets() throws Exception {
+ public void testNamesToDeleteSheets() {
HSSFWorkbook b = openSample("30978-deleted.xls");
assertEquals(3, b.getNumberOfNames());
-
+
// Sheet 2 is deleted
assertEquals("Sheet1", b.getSheetName(0));
assertEquals("Sheet3", b.getSheetName(1));
-
+
Area3DPtg ptg;
NameRecord nr;
HSSFName n;
-
+
/* ======= Name pointing to deleted sheet ====== */
-
+
// First at low level
nr = b.getWorkbook().getNameRecord(0);
assertEquals("On2", nr.getNameText());
assertEquals(0, nr.getSheetNumber());
assertEquals(1, nr.getExternSheetNumber());
assertEquals(1, nr.getNameDefinition().length);
-
+
ptg = (Area3DPtg)nr.getNameDefinition()[0];
assertEquals(1, ptg.getExternSheetIndex());
assertEquals(0, ptg.getFirstColumn());
assertEquals(0, ptg.getFirstRow());
assertEquals(0, ptg.getLastColumn());
assertEquals(2, ptg.getLastRow());
-
+
// Now at high level
n = b.getNameAt(0);
assertEquals("On2", n.getNameName());
assertEquals("", n.getSheetName());
- assertEquals("#REF!$A$1:$A$3", n.getReference());
-
-
+ assertEquals("#REF!$A$1:$A$3", n.getRefersToFormula());
+
+
/* ======= Name pointing to 1st sheet ====== */
-
+
// First at low level
nr = b.getWorkbook().getNameRecord(1);
assertEquals("OnOne", nr.getNameText());
assertEquals(0, nr.getSheetNumber());
assertEquals(0, nr.getExternSheetNumber());
assertEquals(1, nr.getNameDefinition().length);
-
+
ptg = (Area3DPtg)nr.getNameDefinition()[0];
assertEquals(0, ptg.getExternSheetIndex());
assertEquals(0, ptg.getFirstColumn());
assertEquals(2, ptg.getFirstRow());
assertEquals(0, ptg.getLastColumn());
assertEquals(3, ptg.getLastRow());
-
+
// Now at high level
n = b.getNameAt(1);
assertEquals("OnOne", n.getNameName());
assertEquals("Sheet1", n.getSheetName());
- assertEquals("Sheet1!$A$3:$A$4", n.getReference());
-
-
+ assertEquals("Sheet1!$A$3:$A$4", n.getRefersToFormula());
+
+
/* ======= Name pointing to 3rd sheet ====== */
-
+
// First at low level
nr = b.getWorkbook().getNameRecord(2);
assertEquals("OnSheet3", nr.getNameText());
assertEquals(0, nr.getSheetNumber());
assertEquals(2, nr.getExternSheetNumber());
assertEquals(1, nr.getNameDefinition().length);
-
+
ptg = (Area3DPtg)nr.getNameDefinition()[0];
assertEquals(2, ptg.getExternSheetIndex());
assertEquals(0, ptg.getFirstColumn());
assertEquals(0, ptg.getFirstRow());
assertEquals(0, ptg.getLastColumn());
assertEquals(1, ptg.getLastRow());
-
+
// Now at high level
n = b.getNameAt(2);
assertEquals("OnSheet3", n.getNameName());
assertEquals("Sheet3", n.getSheetName());
- assertEquals("Sheet3!$A$1:$A$2", n.getReference());
+ assertEquals("Sheet3!$A$1:$A$2", n.getRefersToFormula());
}
-
+
/**
* result returned by getRecordSize() differs from result returned by serialize()
*/
private static final class BadlyBehavedRecord extends Record {
public BadlyBehavedRecord() {
- //
+ //
}
public short getSid() {
return 0x777;
@@ -504,11 +499,11 @@ public final class TestHSSFWorkbook extends TestCase {
public int serialize(int offset, byte[] data) {
return 4;
}
- protected int getDataSize() {
- return 4;
+ public int getRecordSize() {
+ return 8;
}
}
-
+
/**
* The sample file provided with bug 45582 seems to have one extra byte after the EOFRecord
*/
@@ -521,7 +516,7 @@ public final class TestHSSFWorkbook extends TestCase {
}
}
}
-
+
/**
* Test to make sure that NameRecord.getSheetNumber() is interpreted as a
* 1-based sheet tab index (not a 1-based extern sheet index)
@@ -535,12 +530,12 @@ public final class TestHSSFWorkbook extends TestCase {
nr = wb.getWorkbook().getNameRecord(2);
// TODO - render full row and full column refs properly
assertEquals("Sheet2!$A$1:$IV$1", HSSFFormulaParser.toFormulaString(wb, nr.getNameDefinition())); // 1:1
-
+
try {
wb.setRepeatingRowsAndColumns(3, 4, 5, 8, 11);
} catch (RuntimeException e) {
if (e.getMessage().equals("Builtin (7) already exists for sheet (4)")) {
- // there was a problem in the code which locates the existing print titles name record
+ // there was a problem in the code which locates the existing print titles name record
throw new RuntimeException("Identified bug 45720b");
}
throw e;