mirror of
https://github.com/apache/commons-csv.git
synced 2025-02-09 03:25:24 +00:00
Sort methods.
This commit is contained in:
parent
788f2aaa7a
commit
9dcad06c00
@ -82,6 +82,12 @@ public class CSVParserTest {
|
|||||||
return new BOMInputStream(url.openStream());
|
return new BOMInputStream(url.openStream());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void parseFully(final CSVParser parser) {
|
||||||
|
for (final Iterator<CSVRecord> records = parser.iterator(); records.hasNext(); ) {
|
||||||
|
records.next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBackslashEscaping() throws IOException {
|
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
|
@Test
|
||||||
public void testBOMInputStream_ParserWithReader() throws IOException {
|
public void testBOMInputStream_ParserWithReader() throws IOException {
|
||||||
try (final Reader reader = new InputStreamReader(createBOMInputStream("CSVFileParser/bom.csv"), UTF_8_NAME);
|
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
|
@Test
|
||||||
public void testCarriageReturnEndings() throws IOException {
|
public void testCarriageReturnEndings() throws IOException {
|
||||||
final String code = "foo\rbaar,\rhello,world\r,kanu";
|
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)
|
@Test(expected = NoSuchElementException.class)
|
||||||
public void testClose() throws Exception {
|
public void testClose() throws Exception {
|
||||||
final Reader in = new StringReader("# comment\na,b,c\n1,2,3\nx,y,z");
|
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
|
@Test
|
||||||
public void testForEach() throws Exception {
|
public void testForEach() throws Exception {
|
||||||
final List<CSVRecord> records = new ArrayList<>();
|
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
|
@Test
|
||||||
public void testLineFeedEndings() throws IOException {
|
public void testLineFeedEndings() throws IOException {
|
||||||
final String code = "foo\nbaar,\nhello,world\n,kanu";
|
final String code = "foo\nbaar,\nhello,world\n,kanu";
|
||||||
@ -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)
|
@Test(expected = IllegalArgumentException.class)
|
||||||
public void testParseFileNullFormat() throws Exception {
|
public void testParseFileNullFormat() throws Exception {
|
||||||
try (final CSVParser parser = CSVParser.parse(new File("CSVFileParser/test.csv"), Charset.defaultCharset(), null)) {
|
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());
|
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 {
|
private void validateLineNumbers(final String lineSeparator) throws IOException {
|
||||||
try (final CSVParser parser = CSVParser.parse("a" + lineSeparator + "b" + lineSeparator + "c",
|
try (final CSVParser parser = CSVParser.parse("a" + lineSeparator + "b" + lineSeparator + "c",
|
||||||
CSVFormat.DEFAULT.withRecordSeparator(lineSeparator))) {
|
CSVFormat.DEFAULT.withRecordSeparator(lineSeparator))) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user