View Javadoc
1   package com.opencsv;
2   
3   import com.opencsv.exceptions.CsvException;
4   import com.opencsv.processor.BlankColumnsBecomeNull;
5   import com.opencsv.processor.RowProcessor;
6   import org.junit.jupiter.api.DisplayName;
7   import org.junit.jupiter.api.Test;
8   
9   import java.io.IOException;
10  import java.io.StringReader;
11  import java.util.List;
12  
13  import static org.junit.jupiter.api.Assertions.*;
14  
15  public class CSVReaderHeaderAwareWithRowProcessorTest {
16      private static final RowProcessor ROW_PROCESSOR = new BlankColumnsBecomeNull();
17      private static final String LINES = "one,two,three\na,, \n, ,\n";
18  
19      @DisplayName("CSVReaderHeaderAware with RowProcessor with good string")
20      @Test
21      public void readerWithRowProcessor() throws IOException, CsvException {
22  
23          StringReader stringReader = new StringReader(LINES);
24          CSVReaderHeaderAware csvReader = new CSVReaderHeaderAwareBuilder(stringReader)
25                  .withRowProcessor(ROW_PROCESSOR)
26                  .build();
27  
28          List<String[]> rows = csvReader.readAll();
29          assertEquals(2, rows.size());
30  
31          String[] row1 = rows.get(0);
32          assertEquals(3, row1.length);
33          assertEquals("a", row1[0]);
34          assertNull(row1[1]);
35          assertEquals(" ", row1[2]);
36  
37          String[] row2 = rows.get(1);
38          assertEquals(3, row2.length);
39          assertNull(row2[0]);
40          assertEquals(" ", row2[1]);
41          assertNull(row2[2]);
42      }
43  
44      @DisplayName("CSVReaderHeaderAware without RowProcessor with good string")
45      @Test
46      public void readerWithoutRowProcessor() throws IOException, CsvException {
47  
48          StringReader stringReader = new StringReader(LINES);
49          CSVReaderHeaderAware csvReader = new CSVReaderHeaderAwareBuilder(stringReader).build();
50  
51          List<String[]> rows = csvReader.readAll();
52          assertEquals(2, rows.size());
53  
54          String[] row1 = rows.get(0);
55          assertEquals(3, row1.length);
56          assertEquals("a", row1[0]);
57          assertTrue(row1[1].isEmpty());
58          assertEquals(" ", row1[2]);
59  
60          String[] row2 = rows.get(1);
61          assertEquals(3, row2.length);
62          assertTrue(row2[0].isEmpty());
63          assertEquals(" ", row2[1]);
64          assertTrue(row2[2].isEmpty());
65      }
66  }