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<String> header,
- List<String> 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<Integer, Map<String, String>> lines = new HashMap<Integer, Map<String, String>>();
+ InputStream in = getClass().getResourceAsStream(
+ "/org/argeo/util/ReferenceFile.csv");
+ CsvParserWithLinesAsMap parser = new CsvParserWithLinesAsMap() {
+ protected void processLine(Integer lineNumber,
+ Map<String, String> line) {
+ lines.put(lineNumber, line);
}
};
- csvParser.parse(in);
+ parser.parse(in);
in.close();
+
+ for (Integer i : lines.keySet()) {
+ Map<String, String> curLine = lines.get(i);
+ System.out.println("i : " + i.toString() + " - ID :"
+ + curLine.get("ID"));
+ }
+ assertEquals(5, lines.size());
}
+
}
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<Integer, Map<String, String>> lines = new HashMap<Integer, Map<String, String>>();
- InputStream in = getClass().getResourceAsStream(
- "/org/argeo/util/ReferenceFile.csv");
- CsvParserWithLinesAsMap parser = new CsvParserWithLinesAsMap() {
- protected void processLine(Integer lineNumber,
- Map<String, String> line) {
- lines.put(lineNumber, line);
+ InputStream in = new ByteArrayInputStream(toParse.getBytes());
+
+ CsvParser csvParser = new CsvParser() {
+ protected void processLine(Integer lineNumber, List<String> header,
+ List<String> 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<String, String> curLine = lines.get(i);
- System.out.println("i : " + i.toString() + " - EBITAG :"
- + curLine.get("EBI Tag"));
- }
- assertEquals(11, lines.size());
-
}
+
}
--- /dev/null
+"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",,,,
+++ /dev/null
-"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",,,,