FileDocCategorySizeDatePackage
TestBasic.javaAPI DocApache Poi 3.0.19569Mon Jan 01 12:39:44 GMT 2007org.apache.poi.hpsf.basic

TestBasic

public class TestBasic extends TestCase

Tests the basic HPSF functionality.

author
Rainer Klute (klute@rainer-klute.de)
since
2002-07-20
version
$Id: TestBasic.java 489730 2006-12-22 19:18:16Z bayard $

Fields Summary
static final String
POI_FS
static final String[]
POI_FILES
static final int
BYTE_ORDER
static final int
FORMAT
static final int
OS_VERSION
static final byte[]
CLASS_ID
static final int[]
SECTION_COUNT
static final boolean[]
IS_SUMMARY_INFORMATION
static final boolean[]
IS_DOCUMENT_SUMMARY_INFORMATION
POIFile[]
poiFiles
Constructors Summary
public TestBasic(String name)

Test case constructor.

param
name The test case's name.




                   
       
    
        super(name);
    
Methods Summary
public static voidmain(java.lang.String[] args)

Runs the test cases stand-alone.

param
args Command-line arguments (ignored)
exception
Throwable if any sort of exception or error occurs

        System.setProperty("HPSF.testdata.path",
                           "./src/testcases/org/apache/poi/hpsf/data");
        junit.textui.TestRunner.run(TestBasic.class);
    
public voidsetUp()

Read a the test file from the "data" directory.

exception
FileNotFoundException if the file to be read does not exist.
exception
IOException if any other I/O exception occurs.

        final File dataDir =
            new File(System.getProperty("HPSF.testdata.path"));
        final File data = new File(dataDir, POI_FS);
        poiFiles = Util.readPOIFiles(data);
    
public voidtestCreatePropertySets()

Tests whether property sets can be created from the POI files in the POI file system. This test case expects the first file to be a {@link SummaryInformation}, the second file to be a {@link DocumentSummaryInformation} and the rest to be no property sets. In the latter cases a {@link NoPropertySetStreamException} will be thrown when trying to create a {@link PropertySet}.

exception
IOException if an I/O exception occurs.
exception
UnsupportedEncodingException if a character encoding is not supported.

        Class[] expected = new Class[]
            {
                SummaryInformation.class,
                DocumentSummaryInformation.class,
                NoPropertySetStreamException.class,
                NoPropertySetStreamException.class,
                NoPropertySetStreamException.class
            };
        for (int i = 0; i < expected.length; i++)
        {
            InputStream in = new ByteArrayInputStream(poiFiles[i].getBytes());
            Object o;
            try
            {
                o = PropertySetFactory.create(in);
            }
            catch (NoPropertySetStreamException ex)
            {
                o = ex;
            }
            catch (MarkUnsupportedException ex)
            {
                o = ex;
            }
            in.close();
            Assert.assertEquals(expected[i], o.getClass());
        }
    
public voidtestPropertySetMethods()

Tests the {@link PropertySet} methods. The test file has two property sets: the first one is a {@link SummaryInformation}, the second one is a {@link DocumentSummaryInformation}.

exception
IOException if an I/O exception occurs
exception
HPSFException if any HPSF exception occurs

        /* Loop over the two property sets. */
        for (int i = 0; i < 2; i++)
        {
            byte[] b = poiFiles[i].getBytes();
            PropertySet ps =
                PropertySetFactory.create(new ByteArrayInputStream(b));
            Assert.assertEquals(ps.getByteOrder(), BYTE_ORDER);
            Assert.assertEquals(ps.getFormat(), FORMAT);
            Assert.assertEquals(ps.getOSVersion(), OS_VERSION);
            Assert.assertEquals(new String(ps.getClassID().getBytes()),
                                new String(CLASS_ID));
            Assert.assertEquals(ps.getSectionCount(), SECTION_COUNT[i]);
            Assert.assertEquals(ps.isSummaryInformation(),
                                IS_SUMMARY_INFORMATION[i]);
            Assert.assertEquals(ps.isDocumentSummaryInformation(),
                                IS_DOCUMENT_SUMMARY_INFORMATION[i]);
        }
    
public voidtestReadAllFiles()

This test methods reads all property set streams from all POI filesystems in the "data" directory.

        final File dataDir =
            new File(System.getProperty("HPSF.testdata.path"));
        final File[] fileList = dataDir.listFiles(new FileFilter()
            {
                public boolean accept(final File f)
                {
                    return f.isFile();
                }
            });
        try
        {
            for (int i = 0; i < fileList.length; i++)
            {
                File f = fileList[i];
                /* Read the POI filesystem's property set streams: */
                final POIFile[] psf1 = Util.readPropertySets(f);

                for (int j = 0; j < psf1.length; j++)
                {
                    final InputStream in =
                        new ByteArrayInputStream(psf1[j].getBytes());
                    PropertySetFactory.create(in);
                }
            }
        }
        catch (Throwable t)
        {
            final String s = org.apache.poi.hpsf.Util.toString(t);
            fail(s);
        }
    
public voidtestReadFiles()

Checks the names of the files in the POI filesystem. They are expected to be in a certain order.

        String[] expected = POI_FILES;
        for (int i = 0; i < expected.length; i++)
            Assert.assertEquals(poiFiles[i].getName(), expected[i]);
    
public voidtestSectionMethods()

Tests the {@link Section} methods. The test file has two property sets: the first one is a {@link SummaryInformation}, the second one is a {@link DocumentSummaryInformation}.

exception
IOException if an I/O exception occurs
exception
HPSFException if any HPSF exception occurs

        final SummaryInformation si = (SummaryInformation)
            PropertySetFactory.create(new ByteArrayInputStream
                (poiFiles[0].getBytes()));
        final List sections = si.getSections();
        final Section s = (Section) sections.get(0);
        Assert.assertTrue(org.apache.poi.hpsf.Util.equal
            (s.getFormatID().getBytes(), SectionIDMap.SUMMARY_INFORMATION_ID));
        Assert.assertNotNull(s.getProperties());
        Assert.assertEquals(17, s.getPropertyCount());
        Assert.assertEquals("Titel", s.getProperty(2));
        Assert.assertEquals(1748, s.getSize());