FileDocCategorySizeDatePackage
TestPOIDocument.javaAPI DocApache Poi 3.0.14109Sun Mar 11 12:59:32 GMT 2007org.apache.poi

TestPOIDocument

public class TestPOIDocument extends TestCase
Tests that POIDocument correctly loads and saves the common (hspf) Document Properties
author
Nick Burch (nick at torchbox dot com)

Fields Summary
private POIDocument
doc
private POIDocument
doc2
private POIFSFileSystem
pfs
private POIFSFileSystem
pfs2
Constructors Summary
Methods Summary
public voidsetUp()
Set things up, using a PowerPoint document and a Word Document for our testing

		String dirnameHSLF = System.getProperty("HSLF.testdata.path");
		String filenameHSLF = dirnameHSLF + "/basic_test_ppt_file.ppt";
		String dirnameHWPF = System.getProperty("HWPF.testdata.path");
		String filenameHWPF = dirnameHWPF + "/test2.doc";
		
		FileInputStream fisHSLF = new FileInputStream(filenameHSLF);
		pfs = new POIFSFileSystem(fisHSLF);
		doc = new HSLFSlideShow(pfs);
		
		FileInputStream fisHWPF = new FileInputStream(filenameHWPF);
		pfs2 = new POIFSFileSystem(fisHWPF);
		doc2 = new HWPFDocument(pfs2);
	
public voidtestReadProperties()

    	// We should have both sets
    	assertNotNull(doc.getDocumentSummaryInformation());
    	assertNotNull(doc.getSummaryInformation());
    	
    	// Check they are as expected for the test doc
    	assertEquals("Hogwarts", doc.getSummaryInformation().getAuthor());
    	assertEquals(10598, doc.getDocumentSummaryInformation().getByteCount());
    
public voidtestReadProperties2()

	
    	// Check again on the word one
    	assertNotNull(doc2.getDocumentSummaryInformation());
    	assertNotNull(doc2.getSummaryInformation());
    	
    	assertEquals("Hogwarts", doc2.getSummaryInformation().getAuthor());
    	assertEquals("", doc2.getSummaryInformation().getKeywords());
    	assertEquals(0, doc2.getDocumentSummaryInformation().getByteCount());
    
public voidtestWriteProperties()

    	// Just check we can write them back out into a filesystem
    	POIFSFileSystem outFS = new POIFSFileSystem();
    	doc.writeProperties(outFS);
    	
    	// Should now hold them
    	assertNotNull(
    			outFS.createDocumentInputStream("\005SummaryInformation")
    	);
    	assertNotNull(
    			outFS.createDocumentInputStream("\005DocumentSummaryInformation")
    	);
    
public voidtestWriteReadProperties()

		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		
    	// Write them out
    	POIFSFileSystem outFS = new POIFSFileSystem();
    	doc.writeProperties(outFS);
    	outFS.writeFilesystem(baos);
    	
    	// Create a new version
    	ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
    	POIFSFileSystem inFS = new POIFSFileSystem(bais);
    	
    	// Check they're still there
    	doc.filesystem = inFS;
    	doc.readProperties();
    	
    	// Delegate test
    	testReadProperties();