]> git.argeo.org Git - lgpl/argeo-commons.git/blob - basic/runtime/org.argeo.basic.nodeps/src/test/java/org/argeo/util/CsvParserWithQuotedSeparatorTest.java
Working keyring
[lgpl/argeo-commons.git] / basic / runtime / org.argeo.basic.nodeps / src / test / java / org / argeo / util / CsvParserWithQuotedSeparatorTest.java
1 package org.argeo.util;
2
3 import java.io.ByteArrayInputStream;
4 import java.io.InputStream;
5 import java.util.HashMap;
6 import java.util.List;
7 import java.util.Map;
8
9 import junit.framework.TestCase;
10
11 public class CsvParserWithQuotedSeparatorTest extends TestCase {
12 public void testSimpleParse() throws Exception {
13 String toParse = "Header1,\"Header2\",Header3,\"Header4\"\n"
14 + "\"Col1, Col2\",\"Col\n2\",Col3,\"\"\"Col4\"\"\"\n";
15
16 InputStream in = new ByteArrayInputStream(toParse.getBytes());
17
18 CsvParser csvParser = new CsvParser() {
19 protected void processLine(Integer lineNumber, List<String> header,
20 List<String> tokens) {
21 assertEquals(header.size(), tokens.size());
22 assertEquals(4, tokens.size());
23 assertEquals("Col1, Col2", tokens.get(0));
24 }
25 };
26 // System.out.println(toParse);
27 csvParser.parse(in);
28 in.close();
29
30 }
31
32 public void testParseFile() throws Exception {
33
34 final Map<Integer, Map<String, String>> lines = new HashMap<Integer, Map<String, String>>();
35 InputStream in = getClass().getResourceAsStream(
36 "/org/argeo/util/ReferenceFile.csv");
37
38 CsvParserWithLinesAsMap parser = new CsvParserWithLinesAsMap() {
39 protected void processLine(Integer lineNumber,
40 Map<String, String> line) {
41 // System.out.println("processing line #" + lineNumber);
42 lines.put(lineNumber, line);
43 }
44 };
45
46 parser.parse(in);
47 in.close();
48
49 Map<String, String> line = lines.get(2);
50 assertEquals(",,,,", line.get("Coma testing"));
51 line = lines.get(3);
52 assertEquals(",, ,,", line.get("Coma testing"));
53 line = lines.get(4);
54 assertEquals("module1, module2", line.get("Coma testing"));
55 line = lines.get(5);
56 assertEquals("module1,module2", line.get("Coma testing"));
57 line = lines.get(6);
58 assertEquals(",module1,module2, \nmodule3, module4",
59 line.get("Coma testing"));
60 assertEquals(5, lines.size());
61
62 }
63 }