From df7c340e7be5f662e641e911f1d5c76685abeaba Mon Sep 17 00:00:00 2001 From: Igor Kamyshnikov Date: Fri, 5 Apr 2024 20:27:43 +0100 Subject: [PATCH] better test - comparing printer input and parser output --- .../org/apache/commons/csv/CSVParserTest.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/test/java/org/apache/commons/csv/CSVParserTest.java b/src/test/java/org/apache/commons/csv/CSVParserTest.java index c0f497f7..fd9de361 100644 --- a/src/test/java/org/apache/commons/csv/CSVParserTest.java +++ b/src/test/java/org/apache/commons/csv/CSVParserTest.java @@ -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) {