Return-Path: Delivered-To: apmail-poi-commits-archive@locus.apache.org Received: (qmail 35869 invoked from network); 5 Nov 2008 03:50:53 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 5 Nov 2008 03:50:53 -0000 Received: (qmail 11824 invoked by uid 500); 5 Nov 2008 03:51:00 -0000 Delivered-To: apmail-poi-commits-archive@poi.apache.org Received: (qmail 11779 invoked by uid 500); 5 Nov 2008 03:51:00 -0000 Mailing-List: contact commits-help@poi.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@poi.apache.org Delivered-To: mailing list commits@poi.apache.org Received: (qmail 11770 invoked by uid 99); 5 Nov 2008 03:50:59 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Nov 2008 19:50:59 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Nov 2008 03:49:50 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id CADB2238893B; Tue, 4 Nov 2008 19:50:32 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r711505 - /poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java Date: Wed, 05 Nov 2008 03:50:32 -0000 To: commits@poi.apache.org From: josh@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20081105035032.CADB2238893B@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: josh Date: Tue Nov 4 19:50:31 2008 New Revision: 711505 URL: http://svn.apache.org/viewvc?rev=711505&view=rev Log: Refactored test case Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java?rev=711505&r1=711504&r2=711505&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java (original) +++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java Tue Nov 4 19:50:31 2008 @@ -1,4 +1,3 @@ - /* ==================================================================== Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with @@ -15,7 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. ==================================================================== */ - package org.apache.poi.hssf.record; @@ -25,123 +23,94 @@ /** * Tests that records size calculates correctly. - * + * * @author Glen Stampoultzis (glens at apache.org) */ -public class TestSSTRecordSizeCalculator - extends TestCase -{ - private static final String SMALL_STRING = "Small string"; - private static final int COMPRESSED_PLAIN_STRING_OVERHEAD = 3; -// private List recordLengths; - private IntMapper strings; - private static final int OPTION_FIELD_SIZE = 1; - - public TestSSTRecordSizeCalculator( String s ) - { - super( s ); - } - - public void testBasic() - throws Exception - { - strings.add(makeUnicodeString(SMALL_STRING)); - SSTRecordSizeCalculator calculator = new SSTRecordSizeCalculator(strings); - assertEquals(SSTRecord.SST_RECORD_OVERHEAD + COMPRESSED_PLAIN_STRING_OVERHEAD + SMALL_STRING.length(), - calculator.getRecordSize()); - } - - public void testBigStringAcrossUnicode() - throws Exception - { - String bigString = new String(new char[SSTRecord.MAX_DATA_SPACE + 100]); - strings.add(makeUnicodeString(bigString)); - SSTRecordSizeCalculator calculator = new SSTRecordSizeCalculator(strings); - assertEquals(SSTRecord.SST_RECORD_OVERHEAD - + COMPRESSED_PLAIN_STRING_OVERHEAD - + SSTRecord.MAX_DATA_SPACE - + SSTRecord.STD_RECORD_OVERHEAD - + OPTION_FIELD_SIZE - + 100, - calculator.getRecordSize()); - } - - public void testPerfectFit() - throws Exception - { - String perfectFit = new String(new char[SSTRecord.MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD]); - strings.add(makeUnicodeString(perfectFit)); - SSTRecordSizeCalculator calculator = new SSTRecordSizeCalculator(strings); - assertEquals(SSTRecord.SST_RECORD_OVERHEAD - + COMPRESSED_PLAIN_STRING_OVERHEAD - + perfectFit.length(), - calculator.getRecordSize()); - } - - public void testJustOversized() - throws Exception - { - String tooBig = new String(new char[SSTRecord.MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD + 1]); - strings.add(makeUnicodeString(tooBig)); - SSTRecordSizeCalculator calculator = new SSTRecordSizeCalculator(strings); - assertEquals(SSTRecord.SST_RECORD_OVERHEAD - + COMPRESSED_PLAIN_STRING_OVERHEAD - + tooBig.length() - 1 - // continue record - + SSTRecord.STD_RECORD_OVERHEAD - + OPTION_FIELD_SIZE - + 1, - calculator.getRecordSize()); - - } - - public void testSecondStringStartsOnNewContinuation() - throws Exception - { - String perfectFit = new String(new char[SSTRecord.MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD]); - strings.add(makeUnicodeString(perfectFit)); - strings.add(makeUnicodeString(SMALL_STRING)); - SSTRecordSizeCalculator calculator = new SSTRecordSizeCalculator(strings); - assertEquals(SSTRecord.SST_RECORD_OVERHEAD - + SSTRecord.MAX_DATA_SPACE - // second string - + SSTRecord.STD_RECORD_OVERHEAD - + COMPRESSED_PLAIN_STRING_OVERHEAD - + SMALL_STRING.length(), - calculator.getRecordSize()); - } - - public void testHeaderCrossesNormalContinuePoint() - throws Exception - { - String almostPerfectFit = new String(new char[SSTRecord.MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD - 2]); - strings.add(makeUnicodeString(almostPerfectFit)); - String oneCharString = new String(new char[1]); - strings.add(makeUnicodeString(oneCharString)); - SSTRecordSizeCalculator calculator = new SSTRecordSizeCalculator(strings); - assertEquals(SSTRecord.SST_RECORD_OVERHEAD - + COMPRESSED_PLAIN_STRING_OVERHEAD - + almostPerfectFit.length() - // second string - + SSTRecord.STD_RECORD_OVERHEAD - + COMPRESSED_PLAIN_STRING_OVERHEAD - + oneCharString.length(), - calculator.getRecordSize()); - - } - - - public void setUp() - { - strings = new IntMapper(); - } - - - private UnicodeString makeUnicodeString( String s ) - { - UnicodeString st = new UnicodeString(s); - st.setOptionFlags((byte)0); - return st; - } - +public final class TestSSTRecordSizeCalculator extends TestCase { + private static final String SMALL_STRING = "Small string"; + private static final int COMPRESSED_PLAIN_STRING_OVERHEAD = 3; + private static final int OPTION_FIELD_SIZE = 1; + + private final IntMapper strings = new IntMapper(); + + + private void confirmSize(int expectedSize) { + SSTRecordSizeCalculator calculator = new SSTRecordSizeCalculator(strings); + assertEquals(expectedSize, calculator.getRecordSize()); + } + + public void testBasic() { + strings.add(makeUnicodeString(SMALL_STRING)); + confirmSize(SSTRecord.SST_RECORD_OVERHEAD + + COMPRESSED_PLAIN_STRING_OVERHEAD + + SMALL_STRING.length()); + } + + public void testBigStringAcrossUnicode() { + int bigString = SSTRecord.MAX_DATA_SPACE + 100; + strings.add(makeUnicodeString(bigString)); + confirmSize(SSTRecord.SST_RECORD_OVERHEAD + + COMPRESSED_PLAIN_STRING_OVERHEAD + + SSTRecord.MAX_DATA_SPACE + + SSTRecord.STD_RECORD_OVERHEAD + + OPTION_FIELD_SIZE + + 100); + } + + public void testPerfectFit() { + int perfectFit = SSTRecord.MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD; + strings.add(makeUnicodeString(perfectFit)); + confirmSize(SSTRecord.SST_RECORD_OVERHEAD + + COMPRESSED_PLAIN_STRING_OVERHEAD + + perfectFit); + } + + public void testJustOversized() { + int tooBig = SSTRecord.MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD + 1; + strings.add(makeUnicodeString(tooBig)); + confirmSize(SSTRecord.SST_RECORD_OVERHEAD + + COMPRESSED_PLAIN_STRING_OVERHEAD + + tooBig - 1 + // continue record + + SSTRecord.STD_RECORD_OVERHEAD + + OPTION_FIELD_SIZE + 1); + + } + + public void testSecondStringStartsOnNewContinuation() { + int perfectFit = SSTRecord.MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD; + strings.add(makeUnicodeString(perfectFit)); + strings.add(makeUnicodeString(SMALL_STRING)); + confirmSize(SSTRecord.SST_RECORD_OVERHEAD + + SSTRecord.MAX_DATA_SPACE + // second string + + SSTRecord.STD_RECORD_OVERHEAD + + COMPRESSED_PLAIN_STRING_OVERHEAD + + SMALL_STRING.length()); + } + + public void testHeaderCrossesNormalContinuePoint() { + int almostPerfectFit = SSTRecord.MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD - 2; + strings.add(makeUnicodeString(almostPerfectFit)); + String oneCharString = new String(new char[1]); + strings.add(makeUnicodeString(oneCharString)); + confirmSize(SSTRecord.SST_RECORD_OVERHEAD + + COMPRESSED_PLAIN_STRING_OVERHEAD + + almostPerfectFit + // second string + + SSTRecord.STD_RECORD_OVERHEAD + + COMPRESSED_PLAIN_STRING_OVERHEAD + + oneCharString.length()); + + } + private static UnicodeString makeUnicodeString(int size) { + String s = new String(new char[size]); + return makeUnicodeString(s); + } + + private static UnicodeString makeUnicodeString(String s) { + UnicodeString st = new UnicodeString(s); + st.setOptionFlags((byte) 0); + return st; + } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org For additional commands, e-mail: commits-help@poi.apache.org