- New test case to read all files from the HPSF data directory.

git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353308 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Rainer Klute 2003-08-23 15:14:39 +00:00
parent 4e855eadb1
commit 4bb4a4157f
2 changed files with 90 additions and 5 deletions

View File

@ -55,10 +55,16 @@
package org.apache.poi.hpsf.basic; package org.apache.poi.hpsf.basic;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import junit.framework.Assert; import junit.framework.Assert;
import junit.framework.TestCase; import junit.framework.TestCase;
@ -66,11 +72,14 @@ import junit.framework.TestCase;
import org.apache.poi.hpsf.DocumentSummaryInformation; import org.apache.poi.hpsf.DocumentSummaryInformation;
import org.apache.poi.hpsf.HPSFException; import org.apache.poi.hpsf.HPSFException;
import org.apache.poi.hpsf.MarkUnsupportedException; import org.apache.poi.hpsf.MarkUnsupportedException;
import org.apache.poi.hpsf.MutablePropertySet;
import org.apache.poi.hpsf.NoPropertySetStreamException; import org.apache.poi.hpsf.NoPropertySetStreamException;
import org.apache.poi.hpsf.PropertySet; import org.apache.poi.hpsf.PropertySet;
import org.apache.poi.hpsf.PropertySetFactory; import org.apache.poi.hpsf.PropertySetFactory;
import org.apache.poi.hpsf.SummaryInformation; import org.apache.poi.hpsf.SummaryInformation;
import org.apache.poi.hpsf.UnexpectedPropertySetTypeException; import org.apache.poi.hpsf.UnexpectedPropertySetTypeException;
import org.apache.poi.poifs.filesystem.DocumentEntry;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
@ -223,8 +232,53 @@ public class TestBasic extends TestCase
/**
* <p>This test methods reads all property set streams from all POI
* filesystems in the "data" directory.</p>
*/
public void testReadAllFiles()
{
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];
System.out.println("Reading file " + f);
/* 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());
final PropertySet psIn = PropertySetFactory.create(in);
}
}
}
catch (Throwable t)
{
final String s = Util.toString(t);
System.err.println(s);
}
}
/** /**
* <p>Runs the test cases stand-alone.</p> * <p>Runs the test cases stand-alone.</p>
*
* @param args Command-line arguments (ignored)
*
* @exception Throwable if any sort of exception or error occurs
*/ */
public static void main(final String[] args) throws Throwable public static void main(final String[] args) throws Throwable
{ {

View File

@ -62,6 +62,8 @@ import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Iterator; import java.util.Iterator;
@ -69,11 +71,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Properties; import java.util.Properties;
import org.apache.poi.hpsf.MarkUnsupportedException;
import org.apache.poi.hpsf.NoPropertySetStreamException;
import org.apache.poi.hpsf.PropertySet; import org.apache.poi.hpsf.PropertySet;
import org.apache.poi.hpsf.PropertySetFactory;
import org.apache.poi.hpsf.UnexpectedPropertySetTypeException;
import org.apache.poi.poifs.eventfilesystem.POIFSReader; import org.apache.poi.poifs.eventfilesystem.POIFSReader;
import org.apache.poi.poifs.eventfilesystem.POIFSReaderEvent; import org.apache.poi.poifs.eventfilesystem.POIFSReaderEvent;
import org.apache.poi.poifs.eventfilesystem.POIFSReaderListener; import org.apache.poi.poifs.eventfilesystem.POIFSReaderListener;
@ -186,7 +184,8 @@ public class Util
f.setName(event.getName()); f.setName(event.getName());
f.setPath(event.getPath()); f.setPath(event.getPath());
final InputStream in = event.getStream(); final InputStream in = event.getStream();
final ByteArrayOutputStream out = new ByteArrayOutputStream(); final ByteArrayOutputStream out =
new ByteArrayOutputStream();
Util.copy(in, out); Util.copy(in, out);
out.close(); out.close();
f.setBytes(out.toByteArray()); f.setBytes(out.toByteArray());
@ -300,4 +299,36 @@ public class Util
System.getProperty("user.dir")); System.getProperty("user.dir"));
} }
/**
* <p>Returns a textual representation of a {@link Throwable}, including a
* stacktrace.</p>
*
* @param t The {@link Throwable}
*
* @return a string containing the output of a call to
* <code>t.printStacktrace()</code>.
*/
public static String toString(final Throwable t)
{
final StringWriter sw = new StringWriter();
final PrintWriter pw = new PrintWriter(sw);
t.printStackTrace(pw);
pw.close();
try
{
sw.close();
return sw.toString();
}
catch (IOException e)
{
final StringBuffer b = new StringBuffer(t.getMessage());
b.append("\n");
b.append("Could not create a stacktrace. Reason: ");
b.append(e.getMessage());
return b.toString();
}
}
} }