From: Bruno Sinou Date: Thu, 10 Mar 2011 17:55:14 +0000 (+0000) Subject: Add unit case to test csv import with some line feed. X-Git-Tag: argeo-commons-2.1.30~1374 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=c92dcc7dcc2150099e701480502fdcf217fa7724;p=lgpl%2Fargeo-commons.git Add unit case to test csv import with some line feed. git-svn-id: https://svn.argeo.org/commons/trunk@4281 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/basic/runtime/org.argeo.basic.nodeps/src/test/java/org/argeo/util/CsvParserParseFileTest.java b/basic/runtime/org.argeo.basic.nodeps/src/test/java/org/argeo/util/CsvParserParseFileTest.java index 4a134a578..811758a13 100644 --- a/basic/runtime/org.argeo.basic.nodeps/src/test/java/org/argeo/util/CsvParserParseFileTest.java +++ b/basic/runtime/org.argeo.basic.nodeps/src/test/java/org/argeo/util/CsvParserParseFileTest.java @@ -1,33 +1,33 @@ package org.argeo.util; -import java.io.ByteArrayInputStream; import java.io.InputStream; -import java.util.List; +import java.util.HashMap; +import java.util.Map; import junit.framework.TestCase; public class CsvParserParseFileTest extends TestCase { public void testParse() throws Exception { - String toParse = "Header1,\"Header2\",Header3,\"Header4\"\n" - + "Col1,\"Col\n2\",Col3,\"\"\"Col4\"\"\"\n" - + "Col1,\"Col\n2\",Col3,\"\"\"Col4\"\"\"\n" - + "Col1,\"Col\n2\",Col3,\"\"\"Col4\"\"\"\n"; - InputStream in = new ByteArrayInputStream(toParse.getBytes()); - - CsvParser csvParser = new CsvParser() { - protected void processLine(Integer lineNumber, List header, - List tokens) { - assertEquals(header.size(), tokens.size()); - assertEquals(4, tokens.size()); - assertEquals("Col1", tokens.get(0)); - assertEquals("Col\n2", tokens.get(1)); - assertEquals("Col3", tokens.get(2)); - assertEquals("\"Col4\"", tokens.get(3)); + final Map> lines = new HashMap>(); + InputStream in = getClass().getResourceAsStream( + "/org/argeo/util/ReferenceFile.csv"); + CsvParserWithLinesAsMap parser = new CsvParserWithLinesAsMap() { + protected void processLine(Integer lineNumber, + Map line) { + lines.put(lineNumber, line); } }; - csvParser.parse(in); + parser.parse(in); in.close(); + + for (Integer i : lines.keySet()) { + Map curLine = lines.get(i); + System.out.println("i : " + i.toString() + " - ID :" + + curLine.get("ID")); + } + assertEquals(5, lines.size()); } + } diff --git a/basic/runtime/org.argeo.basic.nodeps/src/test/java/org/argeo/util/CsvParserTestCase.java b/basic/runtime/org.argeo.basic.nodeps/src/test/java/org/argeo/util/CsvParserTestCase.java index f29b9edea..363de8bc5 100644 --- a/basic/runtime/org.argeo.basic.nodeps/src/test/java/org/argeo/util/CsvParserTestCase.java +++ b/basic/runtime/org.argeo.basic.nodeps/src/test/java/org/argeo/util/CsvParserTestCase.java @@ -1,33 +1,34 @@ package org.argeo.util; +import java.io.ByteArrayInputStream; import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; +import java.util.List; import junit.framework.TestCase; public class CsvParserTestCase extends TestCase { public void testParse() throws Exception { + String toParse = "Header1,\"Header2\",Header3,\"Header4\"\n" + + "Col1,\"Col\n2\",Col3,\"\"\"Col4\"\"\"\n" + + "Col1,\"Col\n2\",Col3,\"\"\"Col4\"\"\"\n" + + "Col1,\"Col\n2\",Col3,\"\"\"Col4\"\"\"\n"; - final Map> lines = new HashMap>(); - InputStream in = getClass().getResourceAsStream( - "/org/argeo/util/ReferenceFile.csv"); - CsvParserWithLinesAsMap parser = new CsvParserWithLinesAsMap() { - protected void processLine(Integer lineNumber, - Map line) { - lines.put(lineNumber, line); + InputStream in = new ByteArrayInputStream(toParse.getBytes()); + + CsvParser csvParser = new CsvParser() { + protected void processLine(Integer lineNumber, List header, + List tokens) { + assertEquals(header.size(), tokens.size()); + assertEquals(4, tokens.size()); + assertEquals("Col1", tokens.get(0)); + assertEquals("Col\n2", tokens.get(1)); + assertEquals("Col3", tokens.get(2)); + assertEquals("\"Col4\"", tokens.get(3)); } }; - parser.parse(in); + csvParser.parse(in); in.close(); - - for (Integer i : lines.keySet()) { - Map curLine = lines.get(i); - System.out.println("i : " + i.toString() + " - EBITAG :" - + curLine.get("EBI Tag")); - } - assertEquals(11, lines.size()); - } + } diff --git a/basic/runtime/org.argeo.basic.nodeps/src/test/resources/org/argeo/util/ReferenceFile.csv b/basic/runtime/org.argeo.basic.nodeps/src/test/resources/org/argeo/util/ReferenceFile.csv new file mode 100644 index 000000000..dc2f246bd --- /dev/null +++ b/basic/runtime/org.argeo.basic.nodeps/src/test/resources/org/argeo/util/ReferenceFile.csv @@ -0,0 +1,31 @@ +"ID","A long Text","Name","Other","Number","Reference","Target","Date","Update","Language","ID Ref","weird chars","line feeds","after line feed","Empty column","Status comment","Comments","Empty" +"AK251","Everything & with some line feed \n more “some” quote","B TY",,78.6,"A1155222221111268515131",,12/12/12,03/12/08,,9821308500721,"%%%ùù","ao","alf",,,"Bruno/Antoine what is the real identity?", +"AG254","same","Roger “wallace” Big","15 – JI",78.5,"A1155222221111268515131","next milestone",12/12/12,03/12/08,"_fr (French - France)",9812309500953,"***µ”","a + + + + +o","alf",,"Do the job",, +"FG211","Very long text with some bullets. +1 first +2 second +3. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long","None","15 – JI",15.4,"A1155222221111268515131","next milestone",12/12/12,03/12/08,"_fr (French - France)",9812309500952,"///","a + + + + + + +o","alf",,"Be fast",, +"RRT152","Very long text with some bullets. +1 first +2 second +3. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long","Another $$","15 – JI",12.3,"A1155222221111268515131","next milestone",12/12/12,03/12/08,"_fr (French - France)",9812309500950,"---","a + +o + + +","alf",,,, +"YU121","Another use case : “blank line” + +After the blank.","nothing with brackets( )","15 – JI",15.2,"A1155222221111268515131",,12/12/12,03/12/08,"_fr (French - France)",9812309500925,",;:?./","ao","alf",,,, diff --git a/basic/runtime/org.argeo.basic.nodeps/src/test/ressources/org/argeo/util/ReferenceFile.csv b/basic/runtime/org.argeo.basic.nodeps/src/test/ressources/org/argeo/util/ReferenceFile.csv deleted file mode 100644 index dc2f246bd..000000000 --- a/basic/runtime/org.argeo.basic.nodeps/src/test/ressources/org/argeo/util/ReferenceFile.csv +++ /dev/null @@ -1,31 +0,0 @@ -"ID","A long Text","Name","Other","Number","Reference","Target","Date","Update","Language","ID Ref","weird chars","line feeds","after line feed","Empty column","Status comment","Comments","Empty" -"AK251","Everything & with some line feed \n more “some” quote","B TY",,78.6,"A1155222221111268515131",,12/12/12,03/12/08,,9821308500721,"%%%ùù","ao","alf",,,"Bruno/Antoine what is the real identity?", -"AG254","same","Roger “wallace” Big","15 – JI",78.5,"A1155222221111268515131","next milestone",12/12/12,03/12/08,"_fr (French - France)",9812309500953,"***µ”","a - - - - -o","alf",,"Do the job",, -"FG211","Very long text with some bullets. -1 first -2 second -3. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long","None","15 – JI",15.4,"A1155222221111268515131","next milestone",12/12/12,03/12/08,"_fr (French - France)",9812309500952,"///","a - - - - - - -o","alf",,"Be fast",, -"RRT152","Very long text with some bullets. -1 first -2 second -3. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long. some more very very very long","Another $$","15 – JI",12.3,"A1155222221111268515131","next milestone",12/12/12,03/12/08,"_fr (French - France)",9812309500950,"---","a - -o - - -","alf",,,, -"YU121","Another use case : “blank line” - -After the blank.","nothing with brackets( )","15 – JI",15.2,"A1155222221111268515131",,12/12/12,03/12/08,"_fr (French - France)",9812309500925,",;:?./","ao","alf",,,,