This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-csv.git
commit 61878d773d74b2e2ab1b2bb7ed3519bd47e1fc58 Author: Gary D. Gregory <garydgreg...@gmail.com> AuthorDate: Sat Mar 15 10:33:08 2025 -0400 Add missing test cases for CSVFormat.CSVFormat(char|String) Remove redundant check since setter handles the CR/LF cases when calling setDelimiter() --- src/main/java/org/apache/commons/csv/CSVFormat.java | 3 --- .../java/org/apache/commons/csv/CSVFormatTest.java | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/commons/csv/CSVFormat.java b/src/main/java/org/apache/commons/csv/CSVFormat.java index 7671ccab..9bcf9d18 100644 --- a/src/main/java/org/apache/commons/csv/CSVFormat.java +++ b/src/main/java/org/apache/commons/csv/CSVFormat.java @@ -2602,9 +2602,6 @@ public final class CSVFormat implements Serializable { * @throws IllegalArgumentException Throw when any attribute is invalid or inconsistent with other attributes. */ private void validate() throws IllegalArgumentException { - if (containsLineBreak(delimiter)) { - throw new IllegalArgumentException("The delimiter cannot be a line break"); - } if (quoteCharacter != null && contains(delimiter, quoteCharacter.charValue())) { // Explicit (un)boxing is intentional throw new IllegalArgumentException("The quoteChar character and the delimiter cannot be the same ('" + quoteCharacter + "')"); } diff --git a/src/test/java/org/apache/commons/csv/CSVFormatTest.java b/src/test/java/org/apache/commons/csv/CSVFormatTest.java index 9677d8ec..0c7e763e 100644 --- a/src/test/java/org/apache/commons/csv/CSVFormatTest.java +++ b/src/test/java/org/apache/commons/csv/CSVFormatTest.java @@ -88,6 +88,16 @@ public class CSVFormatTest { assertNotSame(builder.get(), builder.build()); } + @Test + public void testDelimiterCharLineBreakCrThrowsException1() { + assertThrows(IllegalArgumentException.class, () -> CSVFormat.DEFAULT.builder().setDelimiter(Constants.CR).get()); + } + + @Test + public void testDelimiterCharLineBreakLfThrowsException1() { + assertThrows(IllegalArgumentException.class, () -> CSVFormat.DEFAULT.builder().setDelimiter(Constants.LF).get()); + } + @Test public void testDelimiterEmptyStringThrowsException1() { assertThrows(IllegalArgumentException.class, () -> CSVFormat.DEFAULT.builder().setDelimiter("").get()); @@ -120,6 +130,16 @@ public class CSVFormatTest { assertThrows(IllegalArgumentException.class, () -> CSVFormat.newFormat(CR)); } + @Test + public void testDelimiterStringLineBreakCrThrowsException1() { + assertThrows(IllegalArgumentException.class, () -> CSVFormat.DEFAULT.builder().setDelimiter(String.valueOf(Constants.CR)).get()); + } + + @Test + public void testDelimiterStringLineBreakLfThrowsException1() { + assertThrows(IllegalArgumentException.class, () -> CSVFormat.DEFAULT.builder().setDelimiter(String.valueOf(Constants.LF)).get()); + } + @Test public void testDuplicateHeaderElements() { final String[] header = { "A", "A" };