+++ /dev/null
-package org.argeo.util;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/** Test that {@link CsvParser} deals properly with "" quotes. */
-public class CsvParserWithQuotedSeparatorTest {
- public void testSimpleParse() throws Exception {
- String toParse = "Header1,\"Header2\",Header3,\"Header4\"\n"
- + "\"Col1, Col2\",\"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) {
- assert header.size() == tokens.size();
- assert 4 == tokens.size();
- assert "Col1, Col2".equals(tokens.get(0));
- }
- };
- // System.out.println(toParse);
- csvParser.parse(in);
- in.close();
-
- }
-
- public void testParseFile() throws Exception {
-
- 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) {
- // System.out.println("processing line #" + lineNumber);
- lines.put(lineNumber, line);
- }
- };
-
- parser.parse(in);
- in.close();
-
- Map<String, String> line = lines.get(2);
- assert ",,,,".equals(line.get("Coma testing"));
- line = lines.get(3);
- assert ",, ,,".equals(line.get("Coma testing"));
- line = lines.get(4);
- assert "module1, module2".equals(line.get("Coma testing"));
- line = lines.get(5);
- assert "module1,module2".equals(line.get("Coma testing"));
- line = lines.get(6);
- assert ",module1,module2, \nmodule3, module4".equals(line.get("Coma testing"));
- assert 5 == lines.size();
-
- }
-}