From 9dcad06c005a29085d9d26e4e54bc7c9bdb9bd5a Mon Sep 17 00:00:00 2001 From: Gary Gregory Date: Sun, 19 May 2019 18:55:22 -0400 Subject: [PATCH] Sort methods. --- .../org/apache/commons/csv/CSVParserTest.java | 212 +++++++++--------- 1 file changed, 106 insertions(+), 106 deletions(-) diff --git a/src/test/java/org/apache/commons/csv/CSVParserTest.java b/src/test/java/org/apache/commons/csv/CSVParserTest.java index 0802078d..a5539f60 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 records = parser.iterator(); records.hasNext(); ) { + records.next(); + } + } + @Test public void testBackslashEscaping() throws IOException { @@ -182,6 +188,18 @@ 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())) { + for (final CSVRecord record : parser) { + final String string = record.get("Date"); + Assert.assertNotNull(string); + // System.out.println("date: " + record.get("Date")); + } + } + } + @Test public void testBOMInputStream_ParserWithReader() throws IOException { try (final Reader reader = new InputStreamReader(createBOMInputStream("CSVFileParser/bom.csv"), UTF_8_NAME); @@ -206,18 +224,6 @@ 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())) { - for (final CSVRecord record : parser) { - final String string = record.get("Date"); - Assert.assertNotNull(string); - // System.out.println("date: " + record.get("Date")); - } - } - } - @Test public void testCarriageReturnEndings() throws IOException { final String code = "foo\rbaar,\rhello,world\r,kanu"; @@ -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 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 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 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"); @@ -445,6 +421,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 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 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 records = parser.getRecords(); + assertEquals(4, records.size()); + assertEquals("\n", parser.getFirstEndOfLine()); + } + } + @Test public void testForEach() throws Exception { final List records = new ArrayList<>(); @@ -729,6 +735,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 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"; @@ -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 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 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))) {