View Javadoc
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  }