1 package com.opencsv;
2
3 import org.junit.jupiter.api.BeforeEach;
4 import org.junit.jupiter.api.DisplayName;
5 import org.junit.jupiter.api.Test;
6 import org.junit.jupiter.params.ParameterizedTest;
7 import org.junit.jupiter.params.provider.CsvSource;
8
9 import java.io.IOException;
10
11 import static org.junit.jupiter.api.Assertions.assertEquals;
12 import static org.junit.jupiter.api.Assertions.assertTrue;
13
14 public class RFC4180ParserTest {
15
16 private RFC4180ParserBuilder builder;
17 private RFC4180Parser parser;
18
19 @BeforeEach
20 public void setUp() {
21 builder = new RFC4180ParserBuilder();
22 parser = builder.build();
23 }
24
25 @DisplayName("Compare both versions of parseToLine")
26 @ParameterizedTest(name = "value 1 = {0} value 2 = {1} value 3 = {2}")
27 @CsvSource({"value1, value2, value3",
28 "slightly more complex value, another value, third value"})
29 public void compareParseToLine(String value1, String value2, String value3) throws IOException {
30 String[] values = {value1, value2, value3};
31 StringBuilder stringBuilder = new StringBuilder();
32
33 String parse1 = parser.parseToLine(values, true);
34 parser.parseToLine(values, true, stringBuilder);
35
36 assertEquals(parse1, stringBuilder.toString());
37 }
38
39 @Test
40 @DisplayName("handling of an empty string")
41 public void testEmptyString() throws IOException {
42 String[] nextLine = parser.parseLineMulti("");
43 assertEquals(1, nextLine.length);
44 assertTrue(nextLine[0].isEmpty());
45 }
46 }