Update a test to use the existing EntryUtils to copy with, rather than duplciating the logic, and tweak naming/javadocs to clarify what the test does
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1589802 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
b2a35bb494
commit
166b8f6f8a
@ -646,14 +646,18 @@ if(1==2) {
|
|||||||
// TODO The rest of the test
|
// TODO The rest of the test
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that we can read a file with NPOIFS, create a new NPOIFS instance,
|
||||||
|
* write it out, read it with POIFS, and see the original data
|
||||||
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void writPOIFSWriterListener() throws Exception {
|
public void NPOIFSReadCopyWritePOIFSRead() throws Exception {
|
||||||
File testFile = POIDataSamples.getSpreadSheetInstance().getFile("Simple.xls");
|
File testFile = POIDataSamples.getSpreadSheetInstance().getFile("Simple.xls");
|
||||||
NPOIFSFileSystem src = new NPOIFSFileSystem(testFile);
|
NPOIFSFileSystem src = new NPOIFSFileSystem(testFile);
|
||||||
byte wbDataExp[] = IOUtils.toByteArray(src.createDocumentInputStream("Workbook"));
|
byte wbDataExp[] = IOUtils.toByteArray(src.createDocumentInputStream("Workbook"));
|
||||||
|
|
||||||
NPOIFSFileSystem nfs = new NPOIFSFileSystem();
|
NPOIFSFileSystem nfs = new NPOIFSFileSystem();
|
||||||
copy(src.getRoot(), nfs.getRoot());
|
EntryUtils.copyNodes(src.getRoot(), nfs.getRoot());
|
||||||
src.close();
|
src.close();
|
||||||
|
|
||||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||||
@ -666,33 +670,5 @@ if(1==2) {
|
|||||||
assertThat(wbDataExp, equalTo(wbDataAct));
|
assertThat(wbDataExp, equalTo(wbDataAct));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void copy(final DirectoryNode src, final DirectoryNode dest) throws IOException {
|
|
||||||
Iterator<Entry> srcIter = src.getEntries();
|
|
||||||
while(srcIter.hasNext()) {
|
|
||||||
Entry entry = srcIter.next();
|
|
||||||
if (entry.isDirectoryEntry()) {
|
|
||||||
DirectoryNode srcDir = (DirectoryNode)entry;
|
|
||||||
DirectoryNode destDir = (DirectoryNode)dest.createDirectory(srcDir.getName());
|
|
||||||
destDir.setStorageClsid(src.getStorageClsid());
|
|
||||||
copy(srcDir, destDir);
|
|
||||||
} else {
|
|
||||||
final DocumentNode srcDoc = (DocumentNode)entry;
|
|
||||||
// dest.createDocument(srcDoc.getName(), src.createDocumentInputStream(srcDoc));
|
|
||||||
dest.createDocument(srcDoc.getName(), srcDoc.getSize(), new POIFSWriterListener() {
|
|
||||||
public void processPOIFSWriterEvent(POIFSWriterEvent event) {
|
|
||||||
try {
|
|
||||||
DocumentInputStream dis = src.createDocumentInputStream(srcDoc);
|
|
||||||
IOUtils.copy(dis, event.getStream());
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// TODO Directory/Document write tests
|
// TODO Directory/Document write tests
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user