/** * many separators in a cell. * @throws Exception if failed */ @Test public void many_separators() throws Exception { StringBuilder buf = new StringBuilder(); final int separators = 10000; for (int i = 0; i < separators; i++) { buf.append('a'); buf.append(','); } CsvParser parser = create(buf.toString()); assertThat(parser.next(), is(true)); for (int i = 0; i < separators; i++) { assertFill(parser, "a"); } assertFill(parser, null); parser.endRecord(); assertThat(parser.next(), is(false)); }
/** * record is too short. * @throws Exception if failed */ @Test public void too_short_record() throws Exception { CsvParser parser = create("a,b,c"); assertThat(parser.next(), is(true)); try { assertFill(parser, "a"); assertFill(parser, "b"); assertFill(parser, "c"); parser.fill(new StringOption()); parser.endRecord(); fail(); } catch (CsvFormatException e) { assertThat(e.getStatus().getReason(), is(Reason.TOO_SHORT_RECORD)); } assertThat(parser.next(), is(false)); }
/** * record is too long. * @throws Exception if failed */ @Test public void too_long_record() throws Exception { CsvParser parser = create("a,b,c"); assertThat(parser.next(), is(true)); try { assertFill(parser, "a"); assertFill(parser, "b"); parser.endRecord(); fail(); } catch (CsvFormatException e) { assertThat(e.getStatus().getReason(), is(Reason.TOO_LONG_RECORD)); } assertThat(parser.next(), is(false)); }
assertThat(parser.getCurrentLineNumber(), is(1L)); assertThat(parser.getCurrentRecordNumber(), is(1L)); assertFill(parser, null); assertFill(parser, null); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(2L)); assertThat(parser.getCurrentRecordNumber(), is(2L)); assertFill(parser, null); assertFill(parser, null); assertFill(parser, null); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(3L)); assertThat(parser.getCurrentRecordNumber(), is(3L)); assertFill(parser, null); assertFill(parser, null); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(4L)); assertThat(parser.getCurrentRecordNumber(), is(4L)); assertFill(parser, null); assertFill(parser, null); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(5L)); assertThat(parser.getCurrentRecordNumber(), is(5L)); assertFill(parser, null); assertFill(parser, "x");
assertThat(parser.getCurrentLineNumber(), is(1L)); assertThat(parser.getCurrentRecordNumber(), is(1L)); assertFill(parser, null); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(2L)); assertThat(parser.getCurrentRecordNumber(), is(2L)); assertFill(parser, null); assertFill(parser, null); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(3L)); assertThat(parser.getCurrentRecordNumber(), is(3L)); assertFill(parser, null); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(4L)); assertThat(parser.getCurrentRecordNumber(), is(4L)); assertFill(parser, null); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(5L)); assertThat(parser.getCurrentRecordNumber(), is(5L)); assertFill(parser, "x"); parser.endRecord();
assertThat(parser.getCurrentLineNumber(), is(1L)); assertThat(parser.getCurrentRecordNumber(), is(1L)); assertFill(parser, "a\""); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(2L)); assertThat(parser.getCurrentRecordNumber(), is(2L)); assertFill(parser, "a"); assertFill(parser, null); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(3L)); assertThat(parser.getCurrentRecordNumber(), is(3L)); assertFill(parser, "a"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(4L)); assertThat(parser.getCurrentRecordNumber(), is(4L)); assertFill(parser, "a"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(5L)); assertThat(parser.getCurrentRecordNumber(), is(5L)); assertFill(parser, "ax"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(6L)); assertThat(parser.getCurrentRecordNumber(), is(6L)); assertFill(parser, "a");
assertThat(parser.getCurrentLineNumber(), is(1L)); assertThat(parser.getCurrentRecordNumber(), is(1L)); assertFill(parser, "x\""); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(2L)); assertThat(parser.getCurrentRecordNumber(), is(2L)); assertFill(parser, "x"); assertFill(parser, null); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(3L)); assertThat(parser.getCurrentRecordNumber(), is(3L)); assertFill(parser, "x"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(4L)); assertThat(parser.getCurrentRecordNumber(), is(4L)); assertFill(parser, "x"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(5L)); assertThat(parser.getCurrentRecordNumber(), is(5L)); assertFill(parser, "xy"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(6L)); assertThat(parser.getCurrentRecordNumber(), is(6L)); assertFill(parser, "x");
assertThat(parser.getCurrentLineNumber(), is(1L)); assertThat(parser.getCurrentRecordNumber(), is(1L)); assertFill(parser, "\r"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(3L)); assertThat(parser.getCurrentRecordNumber(), is(2L)); assertFill(parser, "\r,"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(5L)); assertThat(parser.getCurrentRecordNumber(), is(3L)); assertFill(parser, "\r\r"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(8L)); assertThat(parser.getCurrentRecordNumber(), is(4L)); assertFill(parser, "\r\n"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(10L)); assertThat(parser.getCurrentRecordNumber(), is(5L)); assertFill(parser, "\rx"); parser.endRecord();
assertThat(parser.getCurrentLineNumber(), is(1L)); assertThat(parser.getCurrentRecordNumber(), is(1L)); assertFill(parser, null); parser.endRecord(); assertThat(parser.next(), is(true)); assertThat(parser.getCurrentLineNumber(), is(2L)); assertThat(parser.getCurrentRecordNumber(), is(2L)); assertFill(parser, "x"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(3L)); assertThat(parser.getCurrentRecordNumber(), is(3L)); assertFill(parser, null); parser.endRecord(); assertThat(parser.next(), is(true)); assertThat(parser.getCurrentLineNumber(), is(4L)); assertThat(parser.getCurrentRecordNumber(), is(4L)); assertFill(parser, null); assertFill(parser, "x"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(5L)); assertThat(parser.getCurrentRecordNumber(), is(5L)); assertFill(parser, null); parser.endRecord(); assertThat(parser.next(), is(true)); assertThat(parser.getCurrentLineNumber(), is(6L)); assertThat(parser.getCurrentRecordNumber(), is(6L)); assertFill(parser, null);
assertThat(parser.getCurrentLineNumber(), is(1L)); assertThat(parser.getCurrentRecordNumber(), is(1L)); assertFill(parser, null); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(2L)); assertThat(parser.getCurrentRecordNumber(), is(2L)); assertFill(parser, ","); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(3L)); assertThat(parser.getCurrentRecordNumber(), is(3L)); assertFill(parser, "\r"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(5L)); assertThat(parser.getCurrentRecordNumber(), is(4L)); assertFill(parser, "\n"); parser.endRecord(); assertThat(parser.getCurrentLineNumber(), is(7L)); assertThat(parser.getCurrentRecordNumber(), is(5L)); assertFill(parser, "x"); parser.endRecord();