Author: ebourg Date: Thu Nov 10 11:58:02 2011 New Revision: 1200283 URL: http://svn.apache.org/viewvc?rev=1200283&view=rev Log: Fixed the immutability of the delimiter in CSVFormat
Modified: commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVFormatTest.java Modified: commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java URL: http://svn.apache.org/viewvc/commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java?rev=1200283&r1=1200282&r2=1200283&view=diff ============================================================================== --- commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java (original) +++ commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java Thu Nov 10 11:58:02 2011 @@ -102,7 +102,7 @@ public class CSVFormat implements Clonea public CSVFormat withDelimiter(char delimiter) { CSVFormat format = (CSVFormat) clone(); - this.delimiter = delimiter; + format.delimiter = delimiter; return format; } Modified: commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVFormatTest.java URL: http://svn.apache.org/viewvc/commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVFormatTest.java?rev=1200283&r1=1200282&r2=1200283&view=diff ============================================================================== --- commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVFormatTest.java (original) +++ commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVFormatTest.java Thu Nov 10 11:58:02 2011 @@ -22,27 +22,42 @@ import junit.framework.TestCase; public class CSVFormatTest extends TestCase { public void testImmutalibity() { - CSVFormat format1 = new CSVFormat('!', '!', '!', '!', true, true, true, true); - CSVFormat format2 = format1.withDelimiter('?') - .withEncapsulator('?') - .withCommentStart('?') - .withLineSeparator("?") - .withEscape('?') - .withLeadingSpacesIgnored(false) - .withTrailingSpacesIgnored(false) - .withEmptyLinesIgnored(false) - .withUnicodeEscapesInterpreted(false); - - assertNotSame(format1.getDelimiter(), format2.getDelimiter()); - assertNotSame(format1.getEncapsulator(), format2.getEncapsulator()); - assertNotSame(format1.getCommentStart(), format2.getCommentStart()); - assertNotSame(format1.getEscape(), format2.getEscape()); - assertNotSame(format1.getLineSeparator(), format2.getLineSeparator()); + CSVFormat format = new CSVFormat('!', '!', '!', '!', true, true, true, true); + + format.withDelimiter('?'); + format.withEncapsulator('?'); + format.withCommentStart('?'); + format.withLineSeparator("?"); + format.withEscape('?'); + format.withLeadingSpacesIgnored(false); + format.withTrailingSpacesIgnored(false); + format.withEmptyLinesIgnored(false); + format.withUnicodeEscapesInterpreted(false); + + assertEquals('!', format.getDelimiter()); + assertEquals('!', format.getEncapsulator()); + assertEquals('!', format.getCommentStart()); + assertEquals("\n", format.getLineSeparator()); + assertEquals('!', format.getEscape()); - assertNotSame(format1.isTrailingSpacesIgnored(), format2.isTrailingSpacesIgnored()); - assertNotSame(format1.isLeadingSpacesIgnored(), format2.isLeadingSpacesIgnored()); - assertNotSame(format1.isEmptyLinesIgnored(), format2.isEmptyLinesIgnored()); - assertNotSame(format1.isUnicodeEscapesInterpreted(), format2.isUnicodeEscapesInterpreted()); + assertEquals(true, format.isLeadingSpacesIgnored()); + assertEquals(true, format.isTrailingSpacesIgnored()); + assertEquals(true, format.isEmptyLinesIgnored()); + assertEquals(true, format.isUnicodeEscapesInterpreted()); } + public void testMutators() { + CSVFormat format = new CSVFormat('!', '!', '!', '!', true, true, true, true); + + assertEquals('?', format.withDelimiter('?').getDelimiter()); + assertEquals('?', format.withEncapsulator('?').getEncapsulator()); + assertEquals('?', format.withCommentStart('?').getCommentStart()); + assertEquals("?", format.withLineSeparator("?").getLineSeparator()); + assertEquals('?', format.withEscape('?').getEscape()); + + assertEquals(false, format.withLeadingSpacesIgnored(false).isLeadingSpacesIgnored()); + assertEquals(false, format.withTrailingSpacesIgnored(false).isTrailingSpacesIgnored()); + assertEquals(false, format.withEmptyLinesIgnored(false).isEmptyLinesIgnored()); + assertEquals(false, format.withUnicodeEscapesInterpreted(false).isUnicodeEscapesInterpreted()); + } }