FileDocCategorySizeDatePackage
TestDocumentOutputStream.javaAPI DocApache Poi 3.0.15686Mon Jan 01 12:39:44 GMT 2007org.apache.poi.poifs.filesystem

TestDocumentOutputStream

public class TestDocumentOutputStream extends TestCase
Class to test DocumentOutputStream functionality
author
Marc Johnson

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

param
name
exception
IOException

        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.filesystem.DocumentOutputStream");
        junit.textui.TestRunner.run(TestDocumentOutputStream.class);
    
public voidtestWrite1()
test write(int) behavior

exception
IOException

        ByteArrayOutputStream stream  = new ByteArrayOutputStream();
        DocumentOutputStream  dstream = new DocumentOutputStream(stream, 25);

        for (int j = 0; j < 25; j++)
        {
            dstream.write(j);
        }
        try
        {
            dstream.write(0);
            fail("Should have caught IOException");
        }
        catch (IOException ignored)
        {
        }
        byte[] output = stream.toByteArray();

        assertEquals(25, output.length);
        for (int j = 0; j < 25; j++)
        {
            assertEquals(( byte ) j, output[ j ]);
        }
        stream.close();
    
public voidtestWrite2()
test write(byte[]) behavior

exception
IOException

        ByteArrayOutputStream stream  = new ByteArrayOutputStream();
        DocumentOutputStream  dstream = new DocumentOutputStream(stream, 25);

        for (int j = 0; j < 6; j++)
        {
            byte[] array = new byte[ 4 ];

            Arrays.fill(array, ( byte ) j);
            dstream.write(array);
        }
        try
        {
            byte[] array = new byte[ 4 ];

            Arrays.fill(array, ( byte ) 7);
            dstream.write(array);
            fail("Should have caught IOException");
        }
        catch (IOException ignored)
        {
        }
        byte[] output = stream.toByteArray();

        assertEquals(24, output.length);
        for (int j = 0; j < 6; j++)
        {
            for (int k = 0; k < 4; k++)
            {
                assertEquals(String.valueOf((j * 4) + k), ( byte ) j,
                             output[ (j * 4) + k ]);
            }
        }
        stream.close();
    
public voidtestWrite3()
test write(byte[], int, int) behavior

exception
IOException

        ByteArrayOutputStream stream  = new ByteArrayOutputStream();
        DocumentOutputStream  dstream = new DocumentOutputStream(stream, 25);
        byte[]                array   = new byte[ 50 ];

        for (int j = 0; j < 50; j++)
        {
            array[ j ] = ( byte ) j;
        }
        dstream.write(array, 1, 25);
        try
        {
            dstream.write(array, 0, 1);
            fail("Should have caught IOException");
        }
        catch (IOException ignored)
        {
        }
        byte[] output = stream.toByteArray();

        assertEquals(25, output.length);
        for (int j = 0; j < 25; j++)
        {
            assertEquals(( byte ) (j + 1), output[ j ]);
        }
        stream.close();
    
public voidtestWriteFiller()
test writeFiller()

exception
IOException

        ByteArrayOutputStream stream  = new ByteArrayOutputStream();
        DocumentOutputStream  dstream = new DocumentOutputStream(stream, 25);

        for (int j = 0; j < 25; j++)
        {
            dstream.write(j);
        }
        try
        {
            dstream.write(0);
            fail("Should have caught IOException");
        }
        catch (IOException ignored)
        {
        }
        dstream.writeFiller(100, ( byte ) 0xff);
        byte[] output = stream.toByteArray();

        assertEquals(100, output.length);
        for (int j = 0; j < 25; j++)
        {
            assertEquals(( byte ) j, output[ j ]);
        }
        for (int j = 25; j < 100; j++)
        {
            assertEquals(String.valueOf(j), ( byte ) 0xff, output[ j ]);
        }
        stream.close();