Sort methods.
This commit is contained in:
parent
788f2aaa7a
commit
9dcad06c00
|
@ -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 {
|
||||
|
||||
|
@ -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<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");
|
||||
|
@ -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<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<>();
|
||||
|
@ -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<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";
|
||||
|
@ -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))) {
|
||||
|
|
Loading…
Reference in New Issue