update assertion in PAPBinTable

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1150628 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Sergey Vladimirov 2011-07-25 11:02:03 +00:00
parent b247763259
commit e209244316
2 changed files with 47 additions and 55 deletions

View File

@ -249,7 +249,9 @@ public class PAPBinTable
{ {
PAPX papx = oldPapxSortedByEndPos.get( papxIndex ); PAPX papx = oldPapxSortedByEndPos.get( papxIndex );
assert papx.getEnd() > startInclusive; assert papxIndex + 1 == oldPapxSortedByEndPos.size()
|| papx.getEnd() > startInclusive;
if ( papx.getEnd() - 1 > charIndex ) if ( papx.getEnd() - 1 > charIndex )
{ {
lastPapxIndex = papxIndex; lastPapxIndex = papxIndex;

View File

@ -18,77 +18,67 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.util.ArrayList; import java.util.List;
import junit.framework.TestCase; import junit.framework.TestCase;
import org.apache.poi.hwpf.HWPFDocFixture; import org.apache.poi.hwpf.HWPFDocFixture;
import org.apache.poi.hwpf.HWPFTestDataSamples;
import org.apache.poi.hwpf.model.io.HWPFFileSystem; import org.apache.poi.hwpf.model.io.HWPFFileSystem;
public final class TestPAPBinTable public final class TestPAPBinTable extends TestCase
extends TestCase
{ {
private PAPBinTable _pAPBinTable = null;
private HWPFDocFixture _hWPFDocFixture;
private TextPieceTable fakeTPT = new TextPieceTable(); public void testObIs()
public void testReadWrite()
throws Exception
{
FileInformationBlock fib = _hWPFDocFixture._fib;
byte[] mainStream = _hWPFDocFixture._mainStream;
byte[] tableStream = _hWPFDocFixture._tableStream;
_pAPBinTable = new PAPBinTable(mainStream, tableStream, null, fib.getFcPlcfbtePapx(), fib.getLcbPlcfbtePapx(), null, fakeTPT, false);
HWPFFileSystem fileSys = new HWPFFileSystem();
_pAPBinTable.writeTo(fileSys, 0);
ByteArrayOutputStream tableOut = fileSys.getStream("1Table");
ByteArrayOutputStream mainOut = fileSys.getStream("WordDocument");
byte[] newTableStream = tableOut.toByteArray();
byte[] newMainStream = mainOut.toByteArray();
PAPBinTable newBinTable = new PAPBinTable(newMainStream, newTableStream, null,0, newTableStream.length, null, fakeTPT, false);
ArrayList oldTextRuns = _pAPBinTable.getParagraphs();
ArrayList newTextRuns = newBinTable.getParagraphs();
assertEquals(oldTextRuns.size(), newTextRuns.size());
int size = oldTextRuns.size();
for (int x = 0; x < size; x++)
{ {
PropertyNode oldNode = (PropertyNode)oldTextRuns.get(x); // shall not fail with assertions on
PropertyNode newNode = (PropertyNode)newTextRuns.get(x); HWPFTestDataSamples.openSampleFile( "ob_is.doc" );
assertTrue(oldNode.equals(newNode));
} }
public void testReadWrite() throws Exception
{
/** @todo verify the constructors */
HWPFDocFixture _hWPFDocFixture = new HWPFDocFixture( this,
HWPFDocFixture.DEFAULT_TEST_FILE );
_hWPFDocFixture.setUp();
TextPieceTable fakeTPT = new TextPieceTable();
FileInformationBlock fib = _hWPFDocFixture._fib;
byte[] mainStream = _hWPFDocFixture._mainStream;
byte[] tableStream = _hWPFDocFixture._tableStream;
} PAPBinTable _pAPBinTable = new PAPBinTable( mainStream, tableStream,
null, fib.getFcPlcfbtePapx(), fib.getLcbPlcfbtePapx(), null,
fakeTPT, false );
protected void setUp() HWPFFileSystem fileSys = new HWPFFileSystem();
throws Exception
{
super.setUp();
/**@todo verify the constructors*/
_hWPFDocFixture = new HWPFDocFixture(this, HWPFDocFixture.DEFAULT_TEST_FILE);
_hWPFDocFixture.setUp(); _pAPBinTable.writeTo( fileSys, 0 );
} ByteArrayOutputStream tableOut = fileSys.getStream( "1Table" );
ByteArrayOutputStream mainOut = fileSys.getStream( "WordDocument" );
protected void tearDown() byte[] newTableStream = tableOut.toByteArray();
throws Exception byte[] newMainStream = mainOut.toByteArray();
{
_hWPFDocFixture.tearDown();
_hWPFDocFixture = null; PAPBinTable newBinTable = new PAPBinTable( newMainStream,
super.tearDown(); newTableStream, null, 0, newTableStream.length, null, fakeTPT,
} false );
List<PAPX> oldTextRuns = _pAPBinTable.getParagraphs();
List<PAPX> newTextRuns = newBinTable.getParagraphs();
assertEquals( oldTextRuns.size(), newTextRuns.size() );
int size = oldTextRuns.size();
for ( int x = 0; x < size; x++ )
{
PAPX oldNode = oldTextRuns.get( x );
PAPX newNode = newTextRuns.get( x );
assertTrue( oldNode.equals( newNode ) );
}
_hWPFDocFixture.tearDown();
}
} }