Author: britter
Date: Mon Apr 8 18:55:58 2013
New Revision: 1465722
URL: http://svn.apache.org/r1465722
Log:
Separate testing empty line handling from comment recognition
Modified:
commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVLexerTest.java
Modified:
commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVLexerTest.java
URL:
http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVLexerTest.java?rev=1465722&r1=1465721&r2=1465722&view=diff
==============================================================================
---
commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVLexerTest.java
(original)
+++
commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVLexerTest.java
Mon Apr 8 18:55:58 2013
@@ -73,41 +73,60 @@ public class CSVLexerTest {
@Test
public void testIgnoreEmptyLines() throws IOException {
final String code =
- "1,2,3,\n"+ // 1
+ "first,line,\n"+
"\n"+
"\n"+
- "a,b x,c#no-comment\n"+ // 2
+ "second,line\n"+
"\n"+
"\n"+
- "# foo \n"+ // 3
- "\n"+ // 4
- "d,e,#no-comment\n"+ // 5
+ "third line \n"+
"\n"+
"\n"+
- "# penultimate comment\n"+ // 6
+ "last, line \n"+
"\n"+
"\n"+
- "# Final comment\n"; // 7
- final CSVFormat format =
CSVFormat.newBuilder().withCommentStart('#').withIgnoreEmptyLines(true).build();
+ "\n";
+ final CSVFormat format =
CSVFormat.newBuilder().withIgnoreEmptyLines(true).build();
final Lexer parser = getLexer(code, format);
- assertThat(parser.nextToken(new Token()), matches(TOKEN, "1"));
- assertThat(parser.nextToken(new Token()), matches(TOKEN, "2"));
- assertThat(parser.nextToken(new Token()), matches(TOKEN, "3"));
- assertThat(parser.nextToken(new Token()), matches(EORECORD, ""));
// 1
- assertThat(parser.nextToken(new Token()), matches(TOKEN, "a"));
- assertThat(parser.nextToken(new Token()), matches(TOKEN, "b x"));
- assertThat(parser.nextToken(new Token()), matches(EORECORD,
"c#no-comment")); // 2
- assertThat(parser.nextToken(new Token()), matches(COMMENT, "foo"));
// 3
- // 4 empty line, ignored
// 4
- assertThat(parser.nextToken(new Token()), matches(TOKEN, "d"));
- assertThat(parser.nextToken(new Token()), matches(TOKEN, "e"));
- assertThat(parser.nextToken(new Token()), matches(EORECORD,
"#no-comment")); // 5
- assertThat(parser.nextToken(new Token()), matches(COMMENT,
"penultimate comment")); // 6
- assertThat(parser.nextToken(new Token()), matches(COMMENT, "Final
comment")); // 7
+ assertThat(parser.nextToken(new Token()), matches(TOKEN, "first"));
+ assertThat(parser.nextToken(new Token()), matches(TOKEN, "line"));
+ assertThat(parser.nextToken(new Token()), matches(EORECORD, ""));
+ assertThat(parser.nextToken(new Token()), matches(TOKEN, "second"));
+ assertThat(parser.nextToken(new Token()), matches(EORECORD, "line"));
+ assertThat(parser.nextToken(new Token()), matches(EORECORD, "third
line "));
+ assertThat(parser.nextToken(new Token()), matches(TOKEN, "last"));
+ assertThat(parser.nextToken(new Token()), matches(EORECORD, " line "));
assertThat(parser.nextToken(new Token()), matches(EOF, ""));
assertThat(parser.nextToken(new Token()), matches(EOF, ""));
+ }
+ @Test
+ public void testComments() throws IOException {
+ final String code =
+ "first,line,\n"+
+ "second,line,tokenWith#no-comment\n"+
+ "# comment line \n"+
+ "third,line,#no-comment\n"+
+ "# penultimate comment\n"+
+ "# Final comment\n";
+ final CSVFormat format =
CSVFormat.newBuilder().withCommentStart('#').build();
+ final Lexer parser = getLexer(code, format);
+
+ assertThat(parser.nextToken(new Token()), matches(TOKEN, "first"));
+ assertThat(parser.nextToken(new Token()), matches(TOKEN, "line"));
+ assertThat(parser.nextToken(new Token()), matches(EORECORD, ""));
+ assertThat(parser.nextToken(new Token()), matches(TOKEN, "second"));
+ assertThat(parser.nextToken(new Token()), matches(TOKEN, "line"));
+ assertThat(parser.nextToken(new Token()), matches(EORECORD,
"tokenWith#no-comment"));
+ assertThat(parser.nextToken(new Token()), matches(COMMENT, "comment
line"));
+ assertThat(parser.nextToken(new Token()), matches(TOKEN, "third"));
+ assertThat(parser.nextToken(new Token()), matches(TOKEN, "line"));
+ assertThat(parser.nextToken(new Token()), matches(EORECORD,
"#no-comment"));
+ assertThat(parser.nextToken(new Token()), matches(COMMENT,
"penultimate comment"));
+ assertThat(parser.nextToken(new Token()), matches(COMMENT, "Final
comment"));
+ assertThat(parser.nextToken(new Token()), matches(EOF, ""));
+ assertThat(parser.nextToken(new Token()), matches(EOF, ""));
}
// multiline including comments (and empty lines)