better test - comparing printer input and parser output

This commit is contained in:
Igor Kamyshnikov 2024-04-05 20:27:43 +01:00
parent 8f98cf634e
commit df7c340e7b
1 changed files with 12 additions and 6 deletions

View File

@ -1564,19 +1564,25 @@ public class CSVParserTest {
@Test
public void testParsingPrintedEmptyFirstColumn() throws Exception {
String[][] lines = new String[][] {
{"a", "b"},
{"", "x"}
};
Exception firstException = null;
for (CSVFormat.Predefined format : CSVFormat.Predefined.values()) {
try {
StringWriter buf = new StringWriter();
try (CSVPrinter printer = new CSVPrinter(buf, format.getFormat())) {
printer.printRecord("a", "b"); // header
printer.printRecord("", "x"); // empty first column
}
try (CSVParser csvRecords = new CSVParser(new StringReader(buf.toString()), format.getFormat().builder().setHeader().build())) {
for (CSVRecord csvRecord : csvRecords) {
assertNotNull(csvRecord);
for (String[] line : lines) {
printer.printRecord((Object[]) line);
}
}
try (CSVParser csvRecords = new CSVParser(new StringReader(buf.toString()), format.getFormat())) {
for (String[] line : lines) {
assertArrayEquals(line, csvRecords.nextRecord().values());
}
assertNull(csvRecords.nextRecord());
}
} catch (Exception | Error e) {
Exception detailedException = new RuntimeException("format: " + format, e);
if (firstException == null) {