Add unit test for using HSSF with both POIFS and NPOIFS
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1054190 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
bc2f0eb994
commit
981b7cbd8e
@ -51,7 +51,7 @@ public final class NPOIFSDocument implements POIFSViewable {
|
||||
this._property = property;
|
||||
this._filesystem = filesystem;
|
||||
|
||||
if(property.getSize() <= POIFSConstants.BIG_BLOCK_MINIMUM_DOCUMENT_SIZE) {
|
||||
if(property.getSize() < POIFSConstants.BIG_BLOCK_MINIMUM_DOCUMENT_SIZE) {
|
||||
_stream = new NPOIFSStream(_filesystem.getMiniStore(), property.getStartBlock());
|
||||
_block_size = _filesystem.getMiniStore().getBlockStoreBlockSize();
|
||||
} else {
|
||||
|
@ -19,6 +19,7 @@ package org.apache.poi.hssf;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
@ -37,6 +38,9 @@ public final class HSSFTestDataSamples {
|
||||
public static InputStream openSampleFileStream(String sampleFileName) {
|
||||
return _inst.openResourceAsStream(sampleFileName);
|
||||
}
|
||||
public static File getSampeFile(String sampleFileName) {
|
||||
return _inst.getFile(sampleFileName);
|
||||
}
|
||||
public static byte[] getTestDataFileContent(String fileName) {
|
||||
return _inst.readFile(fileName);
|
||||
}
|
||||
|
@ -36,6 +36,8 @@ import org.apache.poi.ss.formula.ptg.Area3DPtg;
|
||||
import org.apache.poi.util.LittleEndian;
|
||||
import org.apache.poi.util.TempFile;
|
||||
import org.apache.poi.ss.usermodel.BaseTestWorkbook;
|
||||
import org.apache.poi.poifs.filesystem.DirectoryNode;
|
||||
import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
|
||||
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
||||
import org.apache.poi.POIDataSamples;
|
||||
import org.apache.poi.hpsf.ClassID;
|
||||
@ -530,4 +532,31 @@ public final class TestHSSFWorkbook extends BaseTestWorkbook {
|
||||
|
||||
assertTrue(clsid1.equals(clsid2));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that we can work with both {@link POIFSFileSystem}
|
||||
* and {@link NPOIFSFileSystem}
|
||||
*/
|
||||
public void testDifferentPOIFS() throws Exception {
|
||||
// Open the two filesystems
|
||||
DirectoryNode[] files = new DirectoryNode[2];
|
||||
files[0] = (new POIFSFileSystem(HSSFTestDataSamples.openSampleFileStream("Simple.xls"))).getRoot();
|
||||
files[1] = (new NPOIFSFileSystem(HSSFTestDataSamples.getSampeFile("Simple.xls"))).getRoot();
|
||||
|
||||
// Open without preserving nodes
|
||||
for(DirectoryNode dir : files) {
|
||||
HSSFWorkbook workbook = new HSSFWorkbook(dir, false);
|
||||
HSSFSheet sheet = workbook.getSheetAt(0);
|
||||
HSSFCell cell = sheet.getRow(0).getCell(0);
|
||||
assertEquals("replaceMe", cell .getRichStringCellValue().getString());
|
||||
}
|
||||
|
||||
// Now re-check with preserving
|
||||
for(DirectoryNode dir : files) {
|
||||
HSSFWorkbook workbook = new HSSFWorkbook(dir, true);
|
||||
HSSFSheet sheet = workbook.getSheetAt(0);
|
||||
HSSFCell cell = sheet.getRow(0).getCell(0);
|
||||
assertEquals("replaceMe", cell .getRichStringCellValue().getString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user