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

TestEmptyProperties

public class TestEmptyProperties extends TestCase

Test case for OLE2 files with empty properties. An empty property's type is {@link Variant#VT_EMPTY}.

author
Rainer Klute <klute@rainer-klute.de>
since
2003-07-25
version
$Id: TestEmptyProperties.java 489730 2006-12-22 19:18:16Z bayard $

Fields Summary
static final String
POI_FS

This test file's summary information stream contains some empty properties.

static final String[]
POI_FILES
POIFile[]
poiFiles
Constructors Summary
public TestEmptyProperties(String name)

Constructor

param
name The name of the test case




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

Runs the test cases stand-alone.

param
args the command-line arguments (unused)
exception
Throwable if any 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 containing the test data does not exist
exception
IOException if an 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[]
            {
                NoPropertySetStreamException.class,
                SummaryInformation.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(o.getClass(), expected[i]);
        }
    
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 an HPSF operation fails

        byte[] b = poiFiles[1].getBytes();
        PropertySet ps =
            PropertySetFactory.create(new ByteArrayInputStream(b));
        SummaryInformation s = (SummaryInformation) ps;
        assertNull(s.getTitle());
        assertNull(s.getSubject());
        assertNotNull(s.getAuthor());
        assertNull(s.getKeywords());
        assertNull(s.getComments());
        assertNotNull(s.getTemplate());
        assertNotNull(s.getLastAuthor());
        assertNotNull(s.getRevNumber());
        assertEquals(s.getEditTime(), 0);
        assertNull(s.getLastPrinted());
        assertNull(s.getCreateDateTime());
        assertNull(s.getLastSaveDateTime());
        assertEquals(s.getPageCount(), 0);
        assertEquals(s.getWordCount(), 0);
        assertEquals(s.getCharCount(), 0);
        assertNull(s.getThumbnail());
        assertNull(s.getApplicationName());
    
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]);