FileDocCategorySizeDatePackage
TestSmallBlockTableWriter.javaAPI DocApache Poi 3.0.14420Mon Jan 01 12:39:44 GMT 2007org.apache.poi.poifs.storage

TestSmallBlockTableWriter

public class TestSmallBlockTableWriter extends TestCase
Class to test SmallBlockTableWriter functionality
author
Marc Johnson

Fields Summary
Constructors Summary
public TestSmallBlockTableWriter(String name)
Constructor TestSmallBlockTableWriter

param
name

        super(name);
    
Methods Summary
public static voidmain(java.lang.String[] ignored_args)
main method to run the unit tests

param
ignored_args

        System.out.println(
            "Testing org.apache.poi.poifs.storage.SmallBlockTableWriter");
        junit.textui.TestRunner.run(TestSmallBlockTableWriter.class);
    
public voidtestWritingConstructor()
test writing constructor

exception
IOException

        List documents = new ArrayList();

        documents.add(
            new POIFSDocument(
                "doc340", new ByteArrayInputStream(new byte[ 340 ])));
        documents.add(
            new POIFSDocument(
                "doc5000", new ByteArrayInputStream(new byte[ 5000 ])));
        documents
            .add(new POIFSDocument("doc0",
                                   new ByteArrayInputStream(new byte[ 0 ])));
        documents
            .add(new POIFSDocument("doc1",
                                   new ByteArrayInputStream(new byte[ 1 ])));
        documents
            .add(new POIFSDocument("doc2",
                                   new ByteArrayInputStream(new byte[ 2 ])));
        documents
            .add(new POIFSDocument("doc3",
                                   new ByteArrayInputStream(new byte[ 3 ])));
        documents
            .add(new POIFSDocument("doc4",
                                   new ByteArrayInputStream(new byte[ 4 ])));
        documents
            .add(new POIFSDocument("doc5",
                                   new ByteArrayInputStream(new byte[ 5 ])));
        documents
            .add(new POIFSDocument("doc6",
                                   new ByteArrayInputStream(new byte[ 6 ])));
        documents
            .add(new POIFSDocument("doc7",
                                   new ByteArrayInputStream(new byte[ 7 ])));
        documents
            .add(new POIFSDocument("doc8",
                                   new ByteArrayInputStream(new byte[ 8 ])));
        documents
            .add(new POIFSDocument("doc9",
                                   new ByteArrayInputStream(new byte[ 9 ])));
        RootProperty               root = new PropertyTable().getRoot();
        SmallBlockTableWriter      sbtw = new SmallBlockTableWriter(documents,
                                              root);
        BlockAllocationTableWriter bat  = sbtw.getSBAT();

        // 15 small blocks: 6 for doc340, 0 for doc5000 (too big), 0
        // for doc0 (no storage needed), 1 each for doc1 through doc9
        assertEquals(15 * 64, root.getSize());

        // 15 small blocks rounds up to 2 big blocks
        assertEquals(2, sbtw.countBlocks());
        int start_block = 1000 + root.getStartBlock();

        sbtw.setStartBlock(start_block);
        assertEquals(start_block, root.getStartBlock());