1 package org
.argeo
.util
;
3 import java
.io
.ByteArrayInputStream
;
4 import java
.io
.InputStream
;
5 import java
.util
.HashMap
;
9 import junit
.framework
.TestCase
;
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";
16 InputStream in
= new ByteArrayInputStream(toParse
.getBytes());
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));
26 // System.out.println(toParse);
32 public void testParseFile() throws Exception
{
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");
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
);
49 Map
<String
, String
> line
= lines
.get(2);
50 assertEquals(",,,,", line
.get("Coma testing"));
52 assertEquals(",, ,,", line
.get("Coma testing"));
54 assertEquals("module1, module2", line
.get("Coma testing"));
56 assertEquals("module1,module2", line
.get("Coma testing"));
58 assertEquals(",module1,module2, \nmodule3, module4",
59 line
.get("Coma testing"));
60 assertEquals(5, lines
.size());