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());
+ }
}