From 96471fa9d5bc8b45cf330f1882cb598b1e415b50 Mon Sep 17 00:00:00 2001 From: Josh Micich Date: Wed, 5 Nov 2008 03:50:31 +0000 Subject: [PATCH] Refactored test case git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@711505 13f79535-47bb-0310-9956-ffa450edef68 --- .../record/TestSSTRecordSizeCalculator.java | 207 ++++++++---------- 1 file changed, 88 insertions(+), 119 deletions(-) diff --git a/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java b/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java index 83aaf658f0..d35f2009dc 100644 --- a/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java +++ b/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java @@ -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 @@ import org.apache.poi.util.IntMapper; /** * 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; + } } -- 2.39.5