From: <zep...@us...> - 2006-10-31 11:24:50
|
Revision: 152 http://svn.sourceforge.net/pzfilereader/?rev=152&view=rev Author: zepernick Date: 2006-10-31 03:24:43 -0800 (Tue, 31 Oct 2006) Log Message: ----------- first fixed width test Added Paths: ----------- trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/FixedWidthParserUtilsTest.java Added: trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/FixedWidthParserUtilsTest.java =================================================================== --- trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/FixedWidthParserUtilsTest.java (rev 0) +++ trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/FixedWidthParserUtilsTest.java 2006-10-31 11:24:43 UTC (rev 152) @@ -0,0 +1,70 @@ +package net.sf.pzfilereader.parserutils; + +import java.util.ArrayList; +import java.util.List; + +import junit.framework.TestCase; + +import net.sf.pzfilereader.structure.ColumnMetaData; +import net.sf.pzfilereader.util.FixedWidthParserUtils; +import net.sf.pzfilereader.util.ParserUtils; + +/** + * Test the functionality of a fixed width parse + * + * @author Paul Zepernick + */ +public class FixedWidthParserUtilsTest extends TestCase{ + + + /** + * Test fixed width text + * + */ + public void testFixedParse(){ + check (new String[] {"test","test","test"}, new int[] {5,10,20}, + new String[] {"test","test","test"}); + + check (new String[] {"test with some space","test","test"}, new int[] {300,10,20}, + new String[] {"test with some space","test","test"}); + } + + + private void check (String[] columnData, int[] lengths, String[] expected){ + final List columnMetaData = new ArrayList(); + + assertEquals("data and col lengths different size...", columnData.length, + lengths.length); + + for (int i = 0; i < lengths.length; i ++){ + final ColumnMetaData cmd = new ColumnMetaData(); + cmd.setColLength(lengths[i]); + columnMetaData.add(cmd); + } + + StringBuffer lineToParse = new StringBuffer(); + for (int i = 0; i < columnData.length; i ++){ + // padd each column + lineToParse.append(columnData[i]).append(ParserUtils. + padding(lengths[i] - columnData[i].length(),' ')); + } + + List splitResult = FixedWidthParserUtils.splitFixedText(columnMetaData, + lineToParse.toString()); + + + //compare the parse results to the expected results + assertEquals("did not return correct number of cols...", expected.length, + splitResult.size()); + + for (int i = 0; i < expected.length; i ++){ + assertEquals("col values don't match...", expected[i], + (String)splitResult.get(i)); + } + + } + + public static void main(final String[] args) { + junit.textui.TestRunner.run(FixedWidthParserUtilsTest.class); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |