TestBATBlockpublic class TestBATBlock extends TestCase Class to test BATBlock functionality |
Constructors Summary |
---|
public TestBATBlock(String name)Constructor TestBATBlock
super(name);
|
Methods Summary |
---|
private int[] | createTestArray(int count)
int[] rvalue = new int[ count ];
for (int j = 0; j < count; j++)
{
rvalue[ j ] = j;
}
return rvalue;
| 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.BATBlock");
junit.textui.TestRunner.run(TestBATBlock.class);
| public void | testCalculateXBATStorageRequirements()test calculateXBATStorageRequirements
int[] blockCounts =
{
0, 1, 127, 128
};
int[] requirements =
{
0, 1, 1, 2
};
for (int j = 0; j < blockCounts.length; j++)
{
assertEquals(
"requirement for " + blockCounts[ j ], requirements[ j ],
BATBlock.calculateXBATStorageRequirements(blockCounts[ j ]));
}
| public void | testCreateBATBlocks()Test the createBATBlocks method. The test involves setting up
various arrays of int's and ensuring that the correct number of
BATBlocks is created for each array, and that the data from
each array is correctly written to the BATBlocks.
// test 0 length array (basic sanity)
BATBlock[] rvalue = BATBlock.createBATBlocks(createTestArray(0));
assertEquals(0, rvalue.length);
// test array of length 1
rvalue = BATBlock.createBATBlocks(createTestArray(1));
assertEquals(1, rvalue.length);
verifyContents(rvalue, 1);
// test array of length 127
rvalue = BATBlock.createBATBlocks(createTestArray(127));
assertEquals(1, rvalue.length);
verifyContents(rvalue, 127);
// test array of length 128
rvalue = BATBlock.createBATBlocks(createTestArray(128));
assertEquals(1, rvalue.length);
verifyContents(rvalue, 128);
// test array of length 129
rvalue = BATBlock.createBATBlocks(createTestArray(129));
assertEquals(2, rvalue.length);
verifyContents(rvalue, 129);
| public void | testCreateXBATBlocks()test createXBATBlocks
// test 0 length array (basic sanity)
BATBlock[] rvalue = BATBlock.createXBATBlocks(createTestArray(0), 1);
assertEquals(0, rvalue.length);
// test array of length 1
rvalue = BATBlock.createXBATBlocks(createTestArray(1), 1);
assertEquals(1, rvalue.length);
verifyXBATContents(rvalue, 1, 1);
// test array of length 127
rvalue = BATBlock.createXBATBlocks(createTestArray(127), 1);
assertEquals(1, rvalue.length);
verifyXBATContents(rvalue, 127, 1);
// test array of length 128
rvalue = BATBlock.createXBATBlocks(createTestArray(128), 1);
assertEquals(2, rvalue.length);
verifyXBATContents(rvalue, 128, 1);
// test array of length 254
rvalue = BATBlock.createXBATBlocks(createTestArray(254), 1);
assertEquals(2, rvalue.length);
verifyXBATContents(rvalue, 254, 1);
// test array of length 255
rvalue = BATBlock.createXBATBlocks(createTestArray(255), 1);
assertEquals(3, rvalue.length);
verifyXBATContents(rvalue, 255, 1);
| public void | testEntriesPerBlock()test entriesPerBlock
assertEquals(128, BATBlock.entriesPerBlock());
| public void | testEntriesPerXBATBlock()test entriesPerXBATBlock
assertEquals(127, BATBlock.entriesPerXBATBlock());
| public void | testGetXBATChainOffset()test getXBATChainOffset
assertEquals(508, BATBlock.getXBATChainOffset());
| private void | verifyContents(org.apache.poi.poifs.storage.BATBlock[] blocks, int entries)
byte[] expected = new byte[ 512 * blocks.length ];
Arrays.fill(expected, ( byte ) 0xFF);
int offset = 0;
for (int j = 0; j < entries; j++)
{
expected[ offset++ ] = ( byte ) j;
expected[ offset++ ] = 0;
expected[ offset++ ] = 0;
expected[ offset++ ] = 0;
}
ByteArrayOutputStream stream = new ByteArrayOutputStream(512
* blocks.length);
for (int j = 0; j < blocks.length; j++)
{
blocks[ j ].writeBlocks(stream);
}
byte[] actual = stream.toByteArray();
assertEquals(expected.length, actual.length);
for (int j = 0; j < expected.length; j++)
{
assertEquals(expected[ j ], actual[ j ]);
}
| private void | verifyXBATContents(org.apache.poi.poifs.storage.BATBlock[] blocks, int entries, int start_block)
byte[] expected = new byte[ 512 * blocks.length ];
Arrays.fill(expected, ( byte ) 0xFF);
int offset = 0;
for (int j = 0; j < entries; j++)
{
if ((j % 127) == 0)
{
if (j != 0)
{
offset += 4;
}
}
expected[ offset++ ] = ( byte ) j;
expected[ offset++ ] = 0;
expected[ offset++ ] = 0;
expected[ offset++ ] = 0;
}
for (int j = 0; j < (blocks.length - 1); j++)
{
offset = 508 + (j * 512);
expected[ offset++ ] = ( byte ) (start_block + j + 1);
expected[ offset++ ] = 0;
expected[ offset++ ] = 0;
expected[ offset++ ] = 0;
}
offset = (blocks.length * 512) - 4;
expected[ offset++ ] = ( byte ) -2;
expected[ offset++ ] = ( byte ) -1;
expected[ offset++ ] = ( byte ) -1;
expected[ offset++ ] = ( byte ) -1;
ByteArrayOutputStream stream = new ByteArrayOutputStream(512
* blocks.length);
for (int j = 0; j < blocks.length; j++)
{
blocks[ j ].writeBlocks(stream);
}
byte[] actual = stream.toByteArray();
assertEquals(expected.length, actual.length);
for (int j = 0; j < expected.length; j++)
{
assertEquals("offset " + j, expected[ j ], actual[ j ]);
}
|
|