Add some more NPOIFS write related tests, some of which is disabled as the functionality isn't quite there yet
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1124693 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4f62006ae3
commit
76b3d98c0c
@ -116,7 +116,9 @@ public final class NPropertyTable extends PropertyTableBase {
|
|||||||
// TODO - Use a streaming write
|
// TODO - Use a streaming write
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
for(Property property : _properties) {
|
for(Property property : _properties) {
|
||||||
property.writeData(baos);
|
if(property != null) {
|
||||||
|
property.writeData(baos);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
stream.updateContents(baos.toByteArray());
|
stream.updateContents(baos.toByteArray());
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ import org.apache.poi.poifs.common.POIFSConstants;
|
|||||||
import org.apache.poi.poifs.property.NPropertyTable;
|
import org.apache.poi.poifs.property.NPropertyTable;
|
||||||
import org.apache.poi.poifs.property.Property;
|
import org.apache.poi.poifs.property.Property;
|
||||||
import org.apache.poi.poifs.property.RootProperty;
|
import org.apache.poi.poifs.property.RootProperty;
|
||||||
|
import org.apache.poi.poifs.storage.HeaderBlock;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for the new NIO POIFSFileSystem implementation
|
* Tests for the new NIO POIFSFileSystem implementation
|
||||||
@ -437,16 +438,41 @@ public final class TestNPOIFSFileSystem extends TestCase {
|
|||||||
assertEquals(false, fs.getBATBlockAndIndex(237*128).getBlock().hasFreeSectors());
|
assertEquals(false, fs.getBATBlockAndIndex(237*128).getBlock().hasFreeSectors());
|
||||||
fail("Should only be 237 BATs");
|
fail("Should only be 237 BATs");
|
||||||
} catch(IndexOutOfBoundsException e) {}
|
} catch(IndexOutOfBoundsException e) {}
|
||||||
|
|
||||||
|
|
||||||
|
// Check the counts
|
||||||
|
int numBATs = 0;
|
||||||
|
int numXBATs = 0;
|
||||||
|
for(int i=0; i<237*128; i++) {
|
||||||
|
if(fs.getNextBlock(i) == POIFSConstants.FAT_SECTOR_BLOCK) {
|
||||||
|
numBATs++;
|
||||||
|
}
|
||||||
|
if(fs.getNextBlock(i) == POIFSConstants.DIFAT_SECTOR_BLOCK) {
|
||||||
|
numXBATs++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(1==2) {
|
||||||
|
// TODO Fix this
|
||||||
|
assertEquals(237, numBATs);
|
||||||
|
assertEquals(2, numXBATs);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Write it out and read it back in again
|
// Write it out
|
||||||
// TODO
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
|
fs.writeFilesystem(baos);
|
||||||
|
|
||||||
// Check the header is correct
|
// Check the header is correct
|
||||||
// TODO
|
HeaderBlock header = new HeaderBlock(new ByteArrayInputStream(baos.toByteArray()));
|
||||||
|
if(1==2) {
|
||||||
|
// TODO Fix this
|
||||||
|
assertEquals(237, header.getBATCount());
|
||||||
|
assertEquals(2, header.getXBATCount());
|
||||||
|
|
||||||
// Now check the filesystem sees it correct too
|
// Now check the filesystem sees it correct too
|
||||||
|
fs = new NPOIFSFileSystem(new ByteArrayInputStream(baos.toByteArray()));
|
||||||
// TODO
|
// TODO
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user