]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.enterprise/ext/test/org/argeo/util/CsvWriterTest.java
Add www.argeo.org home page URL.
[lgpl/argeo-commons.git] / org.argeo.enterprise / ext / test / org / argeo / util / CsvWriterTest.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 /** {@link CsvWriter} tests. */
10 public class CsvWriterTest {
11 public void testWrite() throws Exception {
12 ByteArrayOutputStream out = new ByteArrayOutputStream();
13 final CsvWriter csvWriter = new CsvWriter(out);
14
15 String[] header = { "Header1", "Header 2", "Header,3", "Header\n4", "Header\"5\"" };
16 String[] line1 = { "Value1", "Value 2", "Value,3", "Value\n4", "Value\"5\"" };
17 csvWriter.writeLine(Arrays.asList(header));
18 csvWriter.writeLine(Arrays.asList(line1));
19
20 String reference = "Header1,Header 2,\"Header,3\",\"Header\n4\",\"Header\"\"5\"\"\"\n"
21 + "Value1,Value 2,\"Value,3\",\"Value\n4\",\"Value\"\"5\"\"\"\n";
22 String written = new String(out.toByteArray());
23 assert reference.equals(written);
24 out.close();
25 System.out.println(written);
26
27 final List<String> allTokens = new ArrayList<String>();
28 CsvParser csvParser = new CsvParser() {
29 protected void processLine(Integer lineNumber, List<String> header, List<String> tokens) {
30 if (lineNumber == 2)
31 allTokens.addAll(header);
32 allTokens.addAll(tokens);
33 }
34 };
35 ByteArrayInputStream in = new ByteArrayInputStream(written.getBytes());
36 csvParser.parse(in);
37 in.close();
38 List<String> allTokensRef = new ArrayList<String>();
39 allTokensRef.addAll(Arrays.asList(header));
40 allTokensRef.addAll(Arrays.asList(line1));
41
42 assert allTokensRef.size() == allTokens.size();
43 for (int i = 0; i < allTokensRef.size(); i++)
44 assert allTokensRef.get(i).equals(allTokens.get(i));
45 }
46
47 }