TestBlockAllocationTableWriterpublic class TestBlockAllocationTableWriter extends TestCase Class to test BlockAllocationTableWriter functionality |
Constructors Summary |
---|
public TestBlockAllocationTableWriter(String name)Constructor TestBlockAllocationTableWriter
super(name);
|
Methods Summary |
---|
public static void | main(java.lang.String[] ignored_args)main method to run the unit tests
System.out.println(
"Testing org.apache.poi.poifs.storage.BlockAllocationTableWriter");
junit.textui.TestRunner.run(TestBlockAllocationTableWriter.class);
| public void | testAllocateSpace()Test the allocateSpace method.
BlockAllocationTableWriter table =
new BlockAllocationTableWriter();
int[] blockSizes =
{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
};
int expectedIndex = 0;
for (int j = 0; j < blockSizes.length; j++)
{
assertEquals(expectedIndex, table.allocateSpace(blockSizes[ j ]));
expectedIndex += blockSizes[ j ];
}
| public void | testCreateBlocks()Test the createBlocks method
BlockAllocationTableWriter table = new BlockAllocationTableWriter();
table.allocateSpace(127);
table.createBlocks();
verifyBlocksCreated(table, 1);
table = new BlockAllocationTableWriter();
table.allocateSpace(128);
table.createBlocks();
verifyBlocksCreated(table, 2);
table = new BlockAllocationTableWriter();
table.allocateSpace(254);
table.createBlocks();
verifyBlocksCreated(table, 2);
table = new BlockAllocationTableWriter();
table.allocateSpace(255);
table.createBlocks();
verifyBlocksCreated(table, 3);
table = new BlockAllocationTableWriter();
table.allocateSpace(13843);
table.createBlocks();
verifyBlocksCreated(table, 109);
table = new BlockAllocationTableWriter();
table.allocateSpace(13844);
table.createBlocks();
verifyBlocksCreated(table, 110);
table = new BlockAllocationTableWriter();
table.allocateSpace(13969);
table.createBlocks();
verifyBlocksCreated(table, 110);
table = new BlockAllocationTableWriter();
table.allocateSpace(13970);
table.createBlocks();
verifyBlocksCreated(table, 111);
| public void | testProduct()Test content produced by BlockAllocationTableWriter
BlockAllocationTableWriter table = new BlockAllocationTableWriter();
for (int k = 1; k <= 22; k++)
{
table.allocateSpace(k);
}
table.createBlocks();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
table.writeBlocks(stream);
byte[] output = stream.toByteArray();
assertEquals(1024, output.length);
byte[] expected = new byte[ 1024 ];
Arrays.fill(expected, ( byte ) 0xFF);
int offset = 0;
int block_index = 1;
for (int k = 1; k <= 22; k++)
{
int limit = k - 1;
for (int j = 0; j < limit; j++)
{
LittleEndian.putInt(expected, offset, block_index++);
offset += LittleEndianConsts.INT_SIZE;
}
LittleEndian.putInt(expected, offset,
POIFSConstants.END_OF_CHAIN);
offset += 4;
block_index++;
}
// add BAT block indices
LittleEndian.putInt(expected, offset, block_index++);
offset += LittleEndianConsts.INT_SIZE;
LittleEndian.putInt(expected, offset, POIFSConstants.END_OF_CHAIN);
for (int k = 0; k < expected.length; k++)
{
assertEquals("At offset " + k, expected[ k ], output[ k ]);
}
| private void | verifyBlocksCreated(org.apache.poi.poifs.storage.BlockAllocationTableWriter table, int count)
ByteArrayOutputStream stream = new ByteArrayOutputStream();
table.writeBlocks(stream);
byte[] output = stream.toByteArray();
assertEquals(count * 512, output.length);
|
|