use of org.apache.poi.hssf.record.Record in project poi by apache.
the class TestSheet method testCloneMulBlank_bug46776.
@Test
public void testCloneMulBlank_bug46776() {
Record[] recs = { InternalSheet.createBOF(), new DimensionsRecord(), new RowRecord(1), new MulBlankRecord(1, 3, new short[] { 0x0F, 0x0F, 0x0F }), new RowRecord(2), createWindow2Record(), EOFRecord.instance };
InternalSheet sheet = createSheet(Arrays.asList(recs));
InternalSheet sheet2;
try {
sheet2 = sheet.cloneSheet();
} catch (RuntimeException e) {
if (e.getMessage().equals("The class org.apache.poi.hssf.record.MulBlankRecord needs to define a clone method")) {
throw new AssertionFailedError("Identified bug 46776");
}
throw e;
}
RecordCollector rc = new RecordCollector();
sheet2.visitContainedRecords(rc, 0);
Record[] clonedRecs = rc.getRecords();
// +2 for INDEX and DBCELL
assertEquals(recs.length + 2, clonedRecs.length);
}
use of org.apache.poi.hssf.record.Record in project poi by apache.
the class TestSheet method testCreateSheet.
@Test
public void testCreateSheet() {
// Check we're adding row and cell aggregates
List<Record> records = new ArrayList<Record>();
records.add(BOFRecord.createSheetBOF());
records.add(new DimensionsRecord());
records.add(createWindow2Record());
records.add(EOFRecord.instance);
InternalSheet sheet = createSheet(records);
Record[] outRecs = getSheetRecords(sheet, 0);
int pos = 0;
assertTrue(outRecs[pos++] instanceof BOFRecord);
assertTrue(outRecs[pos++] instanceof IndexRecord);
assertTrue(outRecs[pos++] instanceof DimensionsRecord);
assertTrue(outRecs[pos++] instanceof WindowTwoRecord);
assertTrue(outRecs[pos++] instanceof EOFRecord);
}
use of org.apache.poi.hssf.record.Record in project poi by apache.
the class TestSheet method testCreateAggregate.
@Test
public void testCreateAggregate() {
String msoDrawingRecord1 = "0F 00 02 F0 20 01 00 00 10 00 08 F0 08 00 00 00 \n" + "03 00 00 00 02 04 00 00 0F 00 03 F0 08 01 00 00 \n" + "0F 00 04 F0 28 00 00 00 01 00 09 F0 10 00 00 00 \n" + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \n" + "02 00 0A F0 08 00 00 00 00 04 00 00 05 00 00 00 \n" + "0F 00 04 F0 64 00 00 00 42 01 0A F0 08 00 00 00 \n" + "01 04 00 00 00 0A 00 00 73 00 0B F0 2A 00 00 00 \n" + "BF 00 08 00 08 00 44 01 04 00 00 00 7F 01 00 00 \n" + "01 00 BF 01 00 00 11 00 C0 01 40 00 00 08 FF 01 \n" + "10 00 10 00 BF 03 00 00 08 00 00 00 10 F0 12 00 \n" + "00 00 00 00 01 00 54 00 05 00 45 00 01 00 88 03 \n" + "05 00 94 00 00 00 11 F0 00 00 00 00";
String msoDrawingRecord2 = "0F 00 04 F0 64 00 00 00 42 01 0A F0 08 00 00 00 " + "02 04 00 00 80 0A 00 00 73 00 0B F0 2A 00 00 00 " + "BF 00 08 00 08 00 44 01 04 00 00 00 7F 01 00 00 " + "01 00 BF 01 00 00 11 00 C0 01 40 00 00 08 FF 01 " + "10 00 10 00 BF 03 00 00 08 00 00 00 10 F0 12 00 " + "00 00 00 00 01 00 8D 03 05 00 E4 00 03 00 4D 03 " + "0B 00 0C 00 00 00 11 F0 00 00 00 00";
DrawingRecord d1 = new DrawingRecord();
d1.setData(HexRead.readFromString(msoDrawingRecord1));
ObjRecord r1 = new ObjRecord();
DrawingRecord d2 = new DrawingRecord();
d2.setData(HexRead.readFromString(msoDrawingRecord2));
TextObjectRecord r2 = new TextObjectRecord();
r2.setStr(new HSSFRichTextString("Aggregated"));
NoteRecord n2 = new NoteRecord();
List<Record> recordStream = new ArrayList<Record>();
recordStream.add(InternalSheet.createBOF());
recordStream.add(d1);
recordStream.add(r1);
recordStream.add(createWindow2Record());
recordStream.add(EOFRecord.instance);
confirmAggregatedRecords(recordStream);
recordStream = new ArrayList<Record>();
recordStream.add(InternalSheet.createBOF());
recordStream.add(d1);
recordStream.add(r1);
recordStream.add(d2);
recordStream.add(r2);
recordStream.add(createWindow2Record());
recordStream.add(EOFRecord.instance);
confirmAggregatedRecords(recordStream);
recordStream = new ArrayList<Record>();
recordStream.add(InternalSheet.createBOF());
recordStream.add(d1);
recordStream.add(r1);
recordStream.add(d2);
recordStream.add(r2);
recordStream.add(n2);
recordStream.add(createWindow2Record());
recordStream.add(EOFRecord.instance);
confirmAggregatedRecords(recordStream);
}
use of org.apache.poi.hssf.record.Record in project poi by apache.
the class TestLinkTable method testNameCommentRecordBetweenNameRecords.
/**
*
*/
public void testNameCommentRecordBetweenNameRecords() {
final Record[] recs = { new NameRecord(), new NameCommentRecord("name1", "comment1"), new NameRecord(), new NameCommentRecord("name2", "comment2") };
final List<Record> recList = Arrays.asList(recs);
final WorkbookRecordList wrl = new WorkbookRecordList();
final Map<String, NameCommentRecord> commentRecords = new LinkedHashMap<String, NameCommentRecord>();
final LinkTable lt = new LinkTable(recList, 0, wrl, commentRecords);
assertNotNull(lt);
assertEquals(2, commentRecords.size());
//== is intentionally not .equals()!
assertTrue(recs[1] == commentRecords.get("name1"));
//== is intentionally not .equals()!
assertTrue(recs[3] == commentRecords.get("name2"));
assertEquals(2, lt.getNumNames());
}
use of org.apache.poi.hssf.record.Record in project poi by apache.
the class TestValueRecordsAggregate method testSharedFormula.
/**
* Make sure the shared formula DOESNT makes it to the FormulaRecordAggregate when being parsed
* as part of the value records
*/
@Test
public void testSharedFormula() {
List<Record> records = new ArrayList<Record>();
records.add(new FormulaRecord());
records.add(new SharedFormulaRecord());
records.add(new WindowTwoRecord());
constructValueRecord(records);
List<CellValueRecordInterface> cvrs = getValueRecords();
//Ensure that the SharedFormulaRecord has been converted
assertEquals(1, cvrs.size());
CellValueRecordInterface record = cvrs.get(0);
assertNotNull("Row contains a value", record);
assertTrue("First record is a FormulaRecordsAggregate", (record instanceof FormulaRecordAggregate));
}
Aggregations