]> git.argeo.org Git - lgpl/argeo-commons.git/blob - basic/runtime/org.argeo.basic.nodeps/src/test/java/org/argeo/util/CsvWriterTestCase.java
Working keyring
[lgpl/argeo-commons.git] / basic / runtime / org.argeo.basic.nodeps / src / test / java / org / argeo / util / CsvWriterTestCase.java
1 package org.argeo.util;
2
3 import java.io.ByteArrayInputStream;
4 import java.io.ByteArrayOutputStream;
5 import java.util.ArrayList;
6 import java.util.Arrays;
7 import java.util.List;
8
9 import junit.framework.TestCase;
10
11 public class CsvWriterTestCase extends TestCase {
12 public void testWrite() throws Exception {
13 ByteArrayOutputStream out = new ByteArrayOutputStream();
14 final CsvWriter csvWriter = new CsvWriter(out);
15
16 String[] header = { "Header1", "Header 2", "Header,3", "Header\n4",
17 "Header\"5\"" };
18 String[] line1 = { "Value1", "Value 2", "Value,3", "Value\n4",
19 "Value\"5\"" };
20 csvWriter.writeLine(Arrays.asList(header));
21 csvWriter.writeLine(Arrays.asList(line1));
22
23 String reference = "Header1,Header 2,\"Header,3\",\"Header\n4\",\"Header\"\"5\"\"\"\n"
24 + "Value1,Value 2,\"Value,3\",\"Value\n4\",\"Value\"\"5\"\"\"\n";
25 String written = new String(out.toByteArray());
26 assertEquals(reference, written);
27 out.close();
28 System.out.println(written);
29
30 final List<String> allTokens = new ArrayList<String>();
31 CsvParser csvParser = new CsvParser() {
32 protected void processLine(Integer lineNumber, List<String> header,
33 List<String> tokens) {
34 if (lineNumber == 2)
35 allTokens.addAll(header);
36 allTokens.addAll(tokens);
37 }
38 };
39 ByteArrayInputStream in = new ByteArrayInputStream(written.getBytes());
40 csvParser.parse(in);
41 in.close();
42 List<String> allTokensRef = new ArrayList<String>();
43 allTokensRef.addAll(Arrays.asList(header));
44 allTokensRef.addAll(Arrays.asList(line1));
45
46 assertEquals(allTokensRef.size(), allTokens.size());
47 for (int i = 0; i < allTokensRef.size(); i++)
48 assertEquals(allTokensRef.get(i), allTokens.get(i));
49 }
50
51 }