1 package integrationTest.ParserDoubleQuoteHandling;
2
3 import com.opencsv.*;
4 import org.junit.jupiter.api.Assertions;
5 import org.junit.jupiter.api.BeforeEach;
6 import org.junit.jupiter.api.DisplayName;
7 import org.junit.jupiter.api.Test;
8
9 import java.io.IOException;
10 import java.io.StringWriter;
11
12 public class DoubleQuoteHandlingTest {
13 public static final String[] TEST_DATA = new String[] {"{\"\"}"};
14 private CSVWriterBuilder builder;
15 private StringWriter sw;
16
17 @BeforeEach
18 public void setup() {
19 sw = new StringWriter();
20 builder = new CSVWriterBuilder(sw);
21 }
22
23 @Test
24 @DisplayName("show the workings of the CSVParser")
25 public void usingCSVParser() throws IOException {
26 CSVParser parser = new CSVParserBuilder()
27 .withEscapeChar(ICSVWriter.NO_ESCAPE_CHARACTER)
28 .build();
29
30 builder.withParser(parser)
31 .build()
32 .writeNext(TEST_DATA, true);
33
34
35 String[] columns = parser.parseLine(sw.toString().trim());
36 Assertions.assertEquals(TEST_DATA[0] ,columns[0]);
37 }
38
39 @Test
40 @DisplayName("show the workings of the RFC4180Parser with applyQuotesToAll set to true")
41 public void usingRFC4180Parser() throws IOException {
42 RFC4180Parser parser = new RFC4180ParserBuilder()
43 .build();
44
45 builder.withParser(parser)
46 .build()
47 .writeNext(TEST_DATA, true);
48
49
50 String[] columns = parser.parseLine(sw.toString().trim());
51 Assertions.assertEquals(TEST_DATA[0] ,columns[0]);
52 }
53
54 @Test
55 @DisplayName("show the workings of the RFC4180Parser with applyQuotesToAll set to false")
56 public void usingRFC4180ParserNoApplyQuotesToAll() throws IOException {
57 RFC4180Parser parser = new RFC4180ParserBuilder()
58 .build();
59
60 builder.withParser(parser)
61 .build()
62 .writeNext(TEST_DATA, false);
63
64
65 String[] columns = parser.parseLine(sw.toString().trim());
66 Assertions.assertEquals(TEST_DATA[0] ,columns[0]);
67 }
68 }