[CSV-241] CSVFormat#valiadte() does not account for
llowDuplicateHeaderNames. Applying a different version of the GitHub patch with adjustments to the tests. Also remove trailing whitespace from CSVRecord. Closes #43.
This commit is contained in:
parent
7d100bf05b
commit
d6e494b44d
|
@ -38,6 +38,9 @@
|
||||||
<title>Release Notes</title>
|
<title>Release Notes</title>
|
||||||
</properties>
|
</properties>
|
||||||
<body>
|
<body>
|
||||||
|
<release version="1.8" date="2019-MM-DD" description="Feature and bug fix release (Java 8)">
|
||||||
|
<action issue="CSV-241" type="fix" dev="ggregory" due-to="LuckyIlam, Gary Gregory">CSVFormat#valiadte() does not account for allowDuplicateHeaderNames #43.</action>
|
||||||
|
</release>
|
||||||
<release version="1.7" date="2019-06-01" description="Feature and bug fix release (Java 8)">
|
<release version="1.7" date="2019-06-01" description="Feature and bug fix release (Java 8)">
|
||||||
<action issue="CSV-233" type="add" dev="ggregory" due-to="Gary Gregory">Add predefined CSVFormats for printing MongoDB CSV and TSV.</action>
|
<action issue="CSV-233" type="add" dev="ggregory" due-to="Gary Gregory">Add predefined CSVFormats for printing MongoDB CSV and TSV.</action>
|
||||||
<action issue="CSV-208" type="fix" dev="ggregory" due-to="Jurrie Overgoor">Fix escape character for POSTGRESQL_TEXT and POSTGRESQL_CSV formats.</action>
|
<action issue="CSV-208" type="fix" dev="ggregory" due-to="Jurrie Overgoor">Fix escape character for POSTGRESQL_TEXT and POSTGRESQL_CSV formats.</action>
|
||||||
|
|
|
@ -1668,7 +1668,7 @@ public final class CSVFormat implements Serializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
// validate header
|
// validate header
|
||||||
if (header != null) {
|
if (header != null && !allowDuplicateHeaderNames) {
|
||||||
final Set<String> dupCheck = new HashSet<>();
|
final Set<String> dupCheck = new HashSet<>();
|
||||||
for (final String hdr : header) {
|
for (final String hdr : header) {
|
||||||
if (!dupCheck.add(hdr)) {
|
if (!dupCheck.add(hdr)) {
|
||||||
|
|
|
@ -281,7 +281,7 @@ public final class CSVRecord implements Serializable, Iterable<String> {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "CSVRecord [comment='" + comment + "', recordNumber=" + recordNumber + ", values=" +
|
return "CSVRecord [comment='" + comment + "', recordNumber=" + recordNumber + ", values=" +
|
||||||
Arrays.toString(values) + "]";
|
Arrays.toString(values) + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -72,8 +72,20 @@ public class CSVFormatTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = IllegalArgumentException.class)
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testDuplicateHeaderElementsFalse() {
|
||||||
|
CSVFormat.DEFAULT.withAllowDuplicateHeaderNames(false).withHeader("A", "A");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testDuplicateHeaderElementsTrue() {
|
||||||
|
CSVFormat.DEFAULT.withAllowDuplicateHeaderNames(true).withHeader("A", "A");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testDuplicateHeaderElements() {
|
public void testDuplicateHeaderElements() {
|
||||||
CSVFormat.DEFAULT.withHeader("A", "A");
|
final String[] header = { "A", "A" };
|
||||||
|
final CSVFormat format = CSVFormat.DEFAULT.withHeader(header);
|
||||||
|
assertEquals(2, format.getHeader().length);
|
||||||
|
assertArrayEquals(header, format.getHeader());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue