FileDocCategorySizeDatePackage
TestRecordContainer.javaAPI DocApache Poi 3.0.14627Mon Jan 01 18:56:12 GMT 2007org.apache.poi.hslf.record

TestRecordContainer

public class TestRecordContainer extends TestCase
Tests that the helper methods on RecordContainer work properly
author
Nick Burch (nick at torchbox dot com)

Fields Summary
private RecordContainer
recordContainer
Constructors Summary
Methods Summary
protected voidsetUp()

		super.setUp();
		
		// Find a real RecordContainer record
		String dirname = System.getProperty("HSLF.testdata.path");
		String filename = dirname + "/basic_test_ppt_file.ppt";
		HSLFSlideShow hss = new HSLFSlideShow(filename);
		
		Record[] r = hss.getRecords();
		for(int i=0; i<r.length; i++) {
			if(r[i] instanceof RecordContainer) {
				recordContainer = (RecordContainer)r[i];
				return;
			}
		}
	
public voidtestAddChildAfter()

		// Working with new StyleTextPropAtom
		Record newRecord = new StyleTextPropAtom(0);
		
		// Try to add after a mid-record
		Record[] cr = recordContainer.getChildRecords();
		Record after = cr[2];
		Record before = cr[3];
		
		recordContainer.addChildAfter(newRecord, after);
		Record[] ncr = recordContainer.getChildRecords();
		
		assertEquals(cr.length+1, ncr.length);
		assertEquals(after, ncr[2]);
		assertEquals(newRecord, ncr[3]);
		assertEquals(before, ncr[4]);
		
		// Try again at the end
		recordContainer._children = cr;
		after = cr[cr.length-1];
		
		recordContainer.addChildAfter(newRecord, after);
		ncr = recordContainer.getChildRecords();
		
		assertEquals(cr.length+1, ncr.length);
		assertEquals(after, ncr[cr.length-1]);
		assertEquals(newRecord, ncr[cr.length]);
	
public voidtestAddChildBefore()

		// Working with new StyleTextPropAtom
		Record newRecord = new StyleTextPropAtom(0);
		
		// Try to add before a mid-record
		Record[] cr = recordContainer.getChildRecords();
		Record before = cr[2];
		
		recordContainer.addChildBefore(newRecord, before);
		Record[] ncr = recordContainer.getChildRecords();
		
		assertEquals(cr.length+1, ncr.length);
		assertEquals(newRecord, ncr[2]);
		assertEquals(before, ncr[3]);
		
		
		// Try again at the end
		recordContainer._children = cr;
		before = cr[cr.length-1];
		
		recordContainer.addChildBefore(newRecord, before);
		ncr = recordContainer.getChildRecords();
		
		assertEquals(cr.length+1, ncr.length);
		assertEquals(newRecord, ncr[cr.length-1]);
		assertEquals(before, ncr[cr.length]);
		
		
		// And at the start
		recordContainer._children = cr;
		before = cr[0];
		
		recordContainer.addChildBefore(newRecord, before);
		ncr = recordContainer.getChildRecords();
		
		assertEquals(cr.length+1, ncr.length);
		assertEquals(newRecord, ncr[0]);
		assertEquals(before, ncr[1]);
	
public voidtestAppendChildRecord()

		// Grab records for testing with
		Record r = recordContainer.getChildRecords()[0];
		Record rb = recordContainer.getChildRecords()[1];
		Record rc = recordContainer.getChildRecords()[2];
		Record rd = recordContainer.getChildRecords()[3];
		
		// Start with an empty set
		Record[] rs = new Record[0];
		recordContainer._children = rs;
		recordContainer.appendChildRecord(r);
		Record[] nrs = recordContainer.getChildRecords();
		
		assertEquals(1, nrs.length);
		assertEquals(r, nrs[0]);
		
		// Now start with one with 3 entries
		rs = new Record[3];
		recordContainer._children = rs;
		rs[0] = rb;
		rs[1] = rc;
		rs[2] = rd;
		
		recordContainer.appendChildRecord(r);
		nrs = recordContainer.getChildRecords();
		
		assertEquals(4, nrs.length);
		assertEquals(rb, nrs[0]);
		assertEquals(rc, nrs[1]);
		assertEquals(rd, nrs[2]);
		assertEquals(r, nrs[3]);
	
public voidtestIsAnAtom()

		assertFalse( recordContainer.isAnAtom() );