From 245a2d391c66206babc41ce925eb100ba907813e Mon Sep 17 00:00:00 2001 From: Said Ryan Ackley Date: Wed, 9 Jul 2003 01:00:55 +0000 Subject: [PATCH] latest test git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353196 13f79535-47bb-0310-9956-ffa450edef68 --- .../hwpf/model/hdftypes/TestSectionTable.java | 99 ++++++++++++++++++- 1 file changed, 96 insertions(+), 3 deletions(-) diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/model/hdftypes/TestSectionTable.java b/src/scratchpad/testcases/org/apache/poi/hwpf/model/hdftypes/TestSectionTable.java index 864d4cbe0..94cbb4552 100644 --- a/src/scratchpad/testcases/org/apache/poi/hwpf/model/hdftypes/TestSectionTable.java +++ b/src/scratchpad/testcases/org/apache/poi/hwpf/model/hdftypes/TestSectionTable.java @@ -1,12 +1,70 @@ +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2003 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" and + * "Apache POI" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * "Apache POI", nor may "Apache" appear in their name, without + * prior written permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + */ + package org.apache.poi.hwpf.model.hdftypes; import junit.framework.*; + +import java.io.ByteArrayOutputStream; +import java.util.ArrayList; + import org.apache.poi.hwpf.*; +import org.apache.poi.hwpf.model.io.*; public class TestSectionTable extends TestCase { - private SectionTable _sectionTable = null; private HWPFDocFixture _hWPFDocFixture; public TestSectionTable(String name) @@ -14,12 +72,48 @@ public class TestSectionTable super(name); } + public void testReadWrite() + throws Exception + { + FileInformationBlock fib = _hWPFDocFixture._fib; + byte[] mainStream = _hWPFDocFixture._mainStream; + byte[] tableStream = _hWPFDocFixture._tableStream; + int fcMin = fib.getFcMin(); + + SectionTable sectionTable = new SectionTable(mainStream, tableStream, + fib.getFcPlcfsed(), + fib.getLcbPlcfsed(), + fcMin); + HWPFFileSystem fileSys = new HWPFFileSystem(); + + sectionTable.writeTo(fileSys, 0); + ByteArrayOutputStream tableOut = fileSys.getStream("1Table"); + ByteArrayOutputStream mainOut = fileSys.getStream("WordDocument"); + + byte[] newTableStream = tableOut.toByteArray(); + byte[] newMainStream = mainOut.toByteArray(); + + SectionTable newSectionTable = new SectionTable(newMainStream, newTableStream, 0, newTableStream.length, 0); + + ArrayList oldSections = sectionTable.getSections(); + ArrayList newSections = newSectionTable.getSections(); + + assertEquals(oldSections.size(), newSections.size()); + + int size = oldSections.size(); + for (int x = 0; x < size; x++) + { + PropertyNode oldNode = (PropertyNode)oldSections.get(x); + PropertyNode newNode = (PropertyNode)newSections.get(x); + assertEquals(oldNode, newNode); + } + } + protected void setUp() throws Exception { super.setUp(); /**@todo verify the constructors*/ - _sectionTable = new SectionTable(null, null, 0, 0, 0); _hWPFDocFixture = new HWPFDocFixture(this); _hWPFDocFixture.setUp(); @@ -28,7 +122,6 @@ public class TestSectionTable protected void tearDown() throws Exception { - _sectionTable = null; _hWPFDocFixture.tearDown(); _hWPFDocFixture = null;