1 package org
.argeo
.util
;
3 import java
.io
.ByteArrayInputStream
;
4 import java
.io
.InputStream
;
5 import java
.util
.HashMap
;
9 /** Test that {@link CsvParser} deals properly with "" quotes. */
10 public class CsvParserWithQuotedSeparatorTest
{
11 public void testSimpleParse() throws Exception
{
12 String toParse
= "Header1,\"Header2\",Header3,\"Header4\"\n"
13 + "\"Col1, Col2\",\"Col\n2\",Col3,\"\"\"Col4\"\"\"\n";
15 InputStream in
= new ByteArrayInputStream(toParse
.getBytes());
17 CsvParser csvParser
= new CsvParser() {
18 protected void processLine(Integer lineNumber
, List
<String
> header
, List
<String
> tokens
) {
19 assert header
.size() == tokens
.size();
20 assert 4 == tokens
.size();
21 assert "Col1, Col2".equals(tokens
.get(0));
24 // System.out.println(toParse);
30 public void testParseFile() throws Exception
{
32 final Map
<Integer
, Map
<String
, String
>> lines
= new HashMap
<Integer
, Map
<String
, String
>>();
33 InputStream in
= getClass().getResourceAsStream("/org/argeo/util/ReferenceFile.csv");
35 CsvParserWithLinesAsMap parser
= new CsvParserWithLinesAsMap() {
36 protected void processLine(Integer lineNumber
, Map
<String
, String
> line
) {
37 // System.out.println("processing line #" + lineNumber);
38 lines
.put(lineNumber
, line
);
45 Map
<String
, String
> line
= lines
.get(2);
46 assert ",,,,".equals(line
.get("Coma testing"));
48 assert ",, ,,".equals(line
.get("Coma testing"));
50 assert "module1, module2".equals(line
.get("Coma testing"));
52 assert "module1,module2".equals(line
.get("Coma testing"));
54 assert ",module1,module2, \nmodule3, module4".equals(line
.get("Coma testing"));
55 assert 5 == lines
.size();