This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-csv.git
The following commit(s) were added to refs/heads/master by this push: new 9dcad06 Sort methods. 9dcad06 is described below commit 9dcad06c005a29085d9d26e4e54bc7c9bdb9bd5a Author: Gary Gregory <gardgreg...@gmail.com> AuthorDate: Sun May 19 18:55:22 2019 -0400 Sort methods. --- .../java/org/apache/commons/csv/CSVParserTest.java | 204 ++++++++++----------- 1 file changed, 102 insertions(+), 102 deletions(-) diff --git a/src/test/java/org/apache/commons/csv/CSVParserTest.java b/src/test/java/org/apache/commons/csv/CSVParserTest.java index 0802078..a5539f6 100644 --- a/src/test/java/org/apache/commons/csv/CSVParserTest.java +++ b/src/test/java/org/apache/commons/csv/CSVParserTest.java @@ -82,6 +82,12 @@ public class CSVParserTest { return new BOMInputStream(url.openStream()); } + private void parseFully(final CSVParser parser) { + for (final Iterator<CSVRecord> records = parser.iterator(); records.hasNext(); ) { + records.next(); + } + } + @Test public void testBackslashEscaping() throws IOException { @@ -183,9 +189,9 @@ public class CSVParserTest { } @Test - public void testBOMInputStream_ParserWithReader() throws IOException { - try (final Reader reader = new InputStreamReader(createBOMInputStream("CSVFileParser/bom.csv"), UTF_8_NAME); - final CSVParser parser = new CSVParser(reader, CSVFormat.EXCEL.withHeader())) { + public void testBOMInputStream_ParserWithInputStream() throws IOException { + try (final BOMInputStream inputStream = createBOMInputStream("CSVFileParser/bom.csv"); + final CSVParser parser = CSVParser.parse(inputStream, UTF_8, CSVFormat.EXCEL.withHeader())) { for (final CSVRecord record : parser) { final String string = record.get("Date"); Assert.assertNotNull(string); @@ -195,9 +201,9 @@ public class CSVParserTest { } @Test - public void testBOMInputStream_parseWithReader() throws IOException { + public void testBOMInputStream_ParserWithReader() throws IOException { try (final Reader reader = new InputStreamReader(createBOMInputStream("CSVFileParser/bom.csv"), UTF_8_NAME); - final CSVParser parser = CSVParser.parse(reader, CSVFormat.EXCEL.withHeader())) { + final CSVParser parser = new CSVParser(reader, CSVFormat.EXCEL.withHeader())) { for (final CSVRecord record : parser) { final String string = record.get("Date"); Assert.assertNotNull(string); @@ -207,9 +213,9 @@ public class CSVParserTest { } @Test - public void testBOMInputStream_ParserWithInputStream() throws IOException { - try (final BOMInputStream inputStream = createBOMInputStream("CSVFileParser/bom.csv"); - final CSVParser parser = CSVParser.parse(inputStream, UTF_8, CSVFormat.EXCEL.withHeader())) { + public void testBOMInputStream_parseWithReader() throws IOException { + try (final Reader reader = new InputStreamReader(createBOMInputStream("CSVFileParser/bom.csv"), UTF_8_NAME); + final CSVParser parser = CSVParser.parse(reader, CSVFormat.EXCEL.withHeader())) { for (final CSVRecord record : parser) { final String string = record.get("Date"); Assert.assertNotNull(string); @@ -236,36 +242,6 @@ public class CSVParserTest { } } - @Test - public void testFirstEndOfLineCrLf() throws IOException { - final String data = "foo\r\nbaar,\r\nhello,world\r\n,kanu"; - try (final CSVParser parser = CSVParser.parse(data, CSVFormat.DEFAULT)) { - final List<CSVRecord> records = parser.getRecords(); - assertEquals(4, records.size()); - assertEquals("\r\n", parser.getFirstEndOfLine()); - } - } - - @Test - public void testFirstEndOfLineLf() throws IOException { - final String data = "foo\nbaar,\nhello,world\n,kanu"; - try (final CSVParser parser = CSVParser.parse(data, CSVFormat.DEFAULT)) { - final List<CSVRecord> records = parser.getRecords(); - assertEquals(4, records.size()); - assertEquals("\n", parser.getFirstEndOfLine()); - } - } - - @Test - public void testFirstEndOfLineCr() throws IOException { - final String data = "foo\rbaar,\rhello,world\r,kanu"; - try (final CSVParser parser = CSVParser.parse(data, CSVFormat.DEFAULT)) { - final List<CSVRecord> records = parser.getRecords(); - assertEquals(4, records.size()); - assertEquals("\r", parser.getFirstEndOfLine()); - } - } - @Test(expected = NoSuchElementException.class) public void testClose() throws Exception { final Reader in = new StringReader("# comment\na,b,c\n1,2,3\nx,y,z"); @@ -446,6 +422,36 @@ public class CSVParserTest { } @Test + public void testFirstEndOfLineCr() throws IOException { + final String data = "foo\rbaar,\rhello,world\r,kanu"; + try (final CSVParser parser = CSVParser.parse(data, CSVFormat.DEFAULT)) { + final List<CSVRecord> records = parser.getRecords(); + assertEquals(4, records.size()); + assertEquals("\r", parser.getFirstEndOfLine()); + } + } + + @Test + public void testFirstEndOfLineCrLf() throws IOException { + final String data = "foo\r\nbaar,\r\nhello,world\r\n,kanu"; + try (final CSVParser parser = CSVParser.parse(data, CSVFormat.DEFAULT)) { + final List<CSVRecord> records = parser.getRecords(); + assertEquals(4, records.size()); + assertEquals("\r\n", parser.getFirstEndOfLine()); + } + } + + @Test + public void testFirstEndOfLineLf() throws IOException { + final String data = "foo\nbaar,\nhello,world\n,kanu"; + try (final CSVParser parser = CSVParser.parse(data, CSVFormat.DEFAULT)) { + final List<CSVRecord> records = parser.getRecords(); + assertEquals(4, records.size()); + assertEquals("\n", parser.getFirstEndOfLine()); + } + } + + @Test public void testForEach() throws Exception { final List<CSVRecord> records = new ArrayList<>(); try (final Reader in = new StringReader("a,b,c\n1,2,3\nx,y,z")) { @@ -730,6 +736,62 @@ public class CSVParserTest { } @Test + public void testIteratorSequenceBreaking() throws IOException { + final String fiveRows = "1\n2\n3\n4\n5\n"; + + // Iterator hasNext() shouldn't break sequence + CSVParser parser = CSVFormat.DEFAULT.parse(new StringReader(fiveRows)); + int recordNumber = 0; + Iterator<CSVRecord> iter = parser.iterator(); + recordNumber = 0; + while (iter.hasNext()) { + CSVRecord record = iter.next(); + recordNumber++; + assertEquals(String.valueOf(recordNumber), record.get(0)); + if (recordNumber >= 2) { + break; + } + } + iter.hasNext(); + while (iter.hasNext()) { + CSVRecord record = iter.next(); + recordNumber++; + assertEquals(String.valueOf(recordNumber), record.get(0)); + } + + // Consecutive enhanced for loops shouldn't break sequence + parser = CSVFormat.DEFAULT.parse(new StringReader(fiveRows)); + recordNumber = 0; + for (CSVRecord record : parser) { + recordNumber++; + assertEquals(String.valueOf(recordNumber), record.get(0)); + if (recordNumber >= 2) { + break; + } + } + for (CSVRecord record : parser) { + recordNumber++; + assertEquals(String.valueOf(recordNumber), record.get(0)); + } + + // Consecutive enhanced for loops with hasNext() peeking shouldn't break sequence + parser = CSVFormat.DEFAULT.parse(new StringReader(fiveRows)); + recordNumber = 0; + for (CSVRecord record : parser) { + recordNumber++; + assertEquals(String.valueOf(recordNumber), record.get(0)); + if (recordNumber >= 2) { + break; + } + } + parser.iterator().hasNext(); + for (CSVRecord record : parser) { + recordNumber++; + assertEquals(String.valueOf(recordNumber), record.get(0)); + } + } + + @Test public void testLineFeedEndings() throws IOException { final String code = "foo\nbaar,\nhello,world\n,kanu"; try (final CSVParser parser = CSVParser.parse(code, CSVFormat.DEFAULT)) { @@ -737,7 +799,7 @@ public class CSVParserTest { assertEquals(4, records.size()); } } - + @Test public void testMappedButNotSetAsOutlook2007ContactExport() throws Exception { final Reader in = new StringReader("a,b,c\n1,2\nx,y,z"); @@ -791,7 +853,7 @@ public class CSVParserTest { assertEquals("f", second.get(2)); } } - + @Test // TODO this may lead to strange behavior, throw an exception if iterator() has already been called? public void testMultipleIterators() throws Exception { @@ -864,12 +926,6 @@ public class CSVParserTest { } } - private void parseFully(final CSVParser parser) { - for (final Iterator<CSVRecord> records = parser.iterator(); records.hasNext(); ) { - records.next(); - } - } - @Test(expected = IllegalArgumentException.class) public void testParseFileNullFormat() throws Exception { try (final CSVParser parser = CSVParser.parse(new File("CSVFileParser/test.csv"), Charset.defaultCharset(), null)) { @@ -1066,62 +1122,6 @@ public class CSVParserTest { Assert.assertEquals(3, record.size()); } - @Test - public void testIteratorSequenceBreaking() throws IOException { - final String fiveRows = "1\n2\n3\n4\n5\n"; - - // Iterator hasNext() shouldn't break sequence - CSVParser parser = CSVFormat.DEFAULT.parse(new StringReader(fiveRows)); - int recordNumber = 0; - Iterator<CSVRecord> iter = parser.iterator(); - recordNumber = 0; - while (iter.hasNext()) { - CSVRecord record = iter.next(); - recordNumber++; - assertEquals(String.valueOf(recordNumber), record.get(0)); - if (recordNumber >= 2) { - break; - } - } - iter.hasNext(); - while (iter.hasNext()) { - CSVRecord record = iter.next(); - recordNumber++; - assertEquals(String.valueOf(recordNumber), record.get(0)); - } - - // Consecutive enhanced for loops shouldn't break sequence - parser = CSVFormat.DEFAULT.parse(new StringReader(fiveRows)); - recordNumber = 0; - for (CSVRecord record : parser) { - recordNumber++; - assertEquals(String.valueOf(recordNumber), record.get(0)); - if (recordNumber >= 2) { - break; - } - } - for (CSVRecord record : parser) { - recordNumber++; - assertEquals(String.valueOf(recordNumber), record.get(0)); - } - - // Consecutive enhanced for loops with hasNext() peeking shouldn't break sequence - parser = CSVFormat.DEFAULT.parse(new StringReader(fiveRows)); - recordNumber = 0; - for (CSVRecord record : parser) { - recordNumber++; - assertEquals(String.valueOf(recordNumber), record.get(0)); - if (recordNumber >= 2) { - break; - } - } - parser.iterator().hasNext(); - for (CSVRecord record : parser) { - recordNumber++; - assertEquals(String.valueOf(recordNumber), record.get(0)); - } - } - private void validateLineNumbers(final String lineSeparator) throws IOException { try (final CSVParser parser = CSVParser.parse("a" + lineSeparator + "b" + lineSeparator + "c", CSVFormat.DEFAULT.withRecordSeparator(lineSeparator))) {