You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2021/06/23 19:25:45 UTC

[commons-csv] branch master updated (f9f9feb -> 56d9c8d)

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/commons-csv.git.


    from f9f9feb  [CSV-275] Make CSVRecord.toList() public.
     new 2d6090b  Sort methods.
     new 56d9c8d  Add CSVRecord#toStream().

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/changes/changes.xml                            |  1 +
 .../java/org/apache/commons/csv/CSVRecord.java     | 10 ++++
 .../java/org/apache/commons/csv/CSVRecordTest.java | 66 +++++++++++++---------
 3 files changed, 49 insertions(+), 28 deletions(-)

[commons-csv] 01/02: Sort methods.

Posted by gg...@apache.org.
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

commit 2d6090b6dde459485e90154876626a996dc62a8c
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Jun 23 15:14:08 2021 -0400

    Sort methods.
---
 .../java/org/apache/commons/csv/CSVRecordTest.java | 56 +++++++++++-----------
 1 file changed, 28 insertions(+), 28 deletions(-)

diff --git a/src/test/java/org/apache/commons/csv/CSVRecordTest.java b/src/test/java/org/apache/commons/csv/CSVRecordTest.java
index 46ce41c..4bd1a40 100644
--- a/src/test/java/org/apache/commons/csv/CSVRecordTest.java
+++ b/src/test/java/org/apache/commons/csv/CSVRecordTest.java
@@ -81,6 +81,14 @@ public class CSVRecordTest {
     }
 
     @Test
+    public void testCSVRecordNULLValues() throws IOException {
+        final CSVParser parser = CSVParser.parse("A,B\r\nONE,TWO", CSVFormat.DEFAULT.withHeader());
+        final CSVRecord csvRecord = new CSVRecord(parser, null, null, 0L, 0L);
+        assertEquals(0, csvRecord.size());
+        assertThrows(IllegalArgumentException.class, () -> csvRecord.get("B"));
+    }
+
+    @Test
     public void testGetInt() {
         assertEquals(values[0], record.get(0));
         assertEquals(values[1], record.get(1));
@@ -88,6 +96,11 @@ public class CSVRecordTest {
     }
 
     @Test
+    public void testGetNullEnum() {
+        assertThrows(IllegalArgumentException.class, () -> recordWithHeader.get((Enum<?>) null));
+    }
+
+    @Test
     public void testGetString() {
         assertEquals(values[0], recordWithHeader.get("first"));
         assertEquals(values[1], recordWithHeader.get("second"));
@@ -111,11 +124,6 @@ public class CSVRecordTest {
     }
 
     @Test
-    public void testGetNullEnum() {
-        assertThrows(IllegalArgumentException.class, () -> recordWithHeader.get((Enum<?>) null));
-    }
-
-    @Test
     public void testGetUnmappedName() {
         assertThrows(IllegalArgumentException.class, () -> assertNull(recordWithHeader.get("fourth")));
     }
@@ -131,6 +139,13 @@ public class CSVRecordTest {
     }
 
     @Test
+    public void testGetWithEnum() {
+        assertEquals(recordWithHeader.get("first"), recordWithHeader.get(EnumHeader.FIRST));
+        assertEquals(recordWithHeader.get("second"), recordWithHeader.get(EnumHeader.SECOND));
+        assertThrows(IllegalArgumentException.class, () -> recordWithHeader.get(EnumFixture.UNKNOWN_COLUMN));
+    }
+
+    @Test
     public void testIsConsistent() {
         assertTrue(record.isConsistent());
         assertTrue(recordWithHeader.isConsistent());
@@ -281,6 +296,14 @@ public class CSVRecordTest {
         }
     }
 
+    @Test
+    public void testToString() {
+        assertNotNull(recordWithHeader.toString());
+        assertTrue(recordWithHeader.toString().contains("comment="));
+        assertTrue(recordWithHeader.toString().contains("recordNumber="));
+        assertTrue(recordWithHeader.toString().contains("values="));
+    }
+
     private void validateMap(final Map<String, String> map, final boolean allowsNulls) {
         assertTrue(map.containsKey("first"));
         assertTrue(map.containsKey("second"));
@@ -294,27 +317,4 @@ public class CSVRecordTest {
         assertEquals("C", map.get("third"));
         assertEquals(null, map.get("fourth"));
     }
-
-    @Test
-    public void testToString() {
-        assertNotNull(recordWithHeader.toString());
-        assertTrue(recordWithHeader.toString().contains("comment="));
-        assertTrue(recordWithHeader.toString().contains("recordNumber="));
-        assertTrue(recordWithHeader.toString().contains("values="));
-    }
-
-    @Test
-    public void testGetWithEnum() {
-        assertEquals(recordWithHeader.get("first"), recordWithHeader.get(EnumHeader.FIRST));
-        assertEquals(recordWithHeader.get("second"), recordWithHeader.get(EnumHeader.SECOND));
-        assertThrows(IllegalArgumentException.class, () -> recordWithHeader.get(EnumFixture.UNKNOWN_COLUMN));
-    }
-
-    @Test
-    public void testCSVRecordNULLValues() throws IOException {
-        final CSVParser parser = CSVParser.parse("A,B\r\nONE,TWO", CSVFormat.DEFAULT.withHeader());
-        final CSVRecord csvRecord = new CSVRecord(parser, null, null, 0L, 0L);
-        assertEquals(0, csvRecord.size());
-        assertThrows(IllegalArgumentException.class, () -> csvRecord.get("B"));
-    }
 }

[commons-csv] 02/02: Add CSVRecord#toStream().

Posted by gg...@apache.org.
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

commit 56d9c8d48f4934ade89db8d9f8eb231860dff3a4
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Jun 23 15:25:41 2021 -0400

    Add CSVRecord#toStream().
---
 src/changes/changes.xml                                 |  1 +
 src/main/java/org/apache/commons/csv/CSVRecord.java     | 10 ++++++++++
 src/test/java/org/apache/commons/csv/CSVRecordTest.java | 10 ++++++++++
 3 files changed, 21 insertions(+)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 388fa7d..cb6f25b 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -59,6 +59,7 @@
       <action issue="CSV-123" type="fix" dev="ggregory" due-to="Emmanuel Bourg, Benedikt Ritter, shivakrishnaah, Gary Gregory">Add possibility to use ResultSet header meta data as CSV header #11.</action>
       <!-- ADD -->
       <action issue="CSV-275" type="add" dev="ggregory" due-to="Michael Wyraz, Gary Gregory">Make CSVRecord#toList() public.</action>
+      <action                 type="add" dev="ggregory" due-to="Gary Gregory">Add CSVRecord#toStream().</action>
       <!-- UPDATE -->
       <action                 type="update" dev="ggregory" due-to="Gary Gregory">Update org.junit.jupiter:junit-jupiter from 5.6.0 to 5.7.0, #84 #109</action>
       <action                 type="update" dev="ggregory" due-to="Gary Gregory">Update tests from Apache Commons Lang 3.9 to 3.12.0.</action>
diff --git a/src/main/java/org/apache/commons/csv/CSVRecord.java b/src/main/java/org/apache/commons/csv/CSVRecord.java
index a8c86de..ced1a9a 100644
--- a/src/main/java/org/apache/commons/csv/CSVRecord.java
+++ b/src/main/java/org/apache/commons/csv/CSVRecord.java
@@ -309,6 +309,16 @@ public final class CSVRecord implements Serializable, Iterable<String> {
     }
 
     /**
+     * Returns a sequential ordered stream whose elements are the values.
+     *
+     * @return the new stream.
+     * @since 1.9.0
+     */
+    public Stream<String> toStream() {
+        return Arrays.stream(values);
+    }
+
+    /**
      * Returns a string representation of the contents of this record. The result is constructed by comment, mapping,
      * recordNumber and by passing the internal values array to {@link Arrays#toString(Object[])}.
      *
diff --git a/src/test/java/org/apache/commons/csv/CSVRecordTest.java b/src/test/java/org/apache/commons/csv/CSVRecordTest.java
index 4bd1a40..4f655f2 100644
--- a/src/test/java/org/apache/commons/csv/CSVRecordTest.java
+++ b/src/test/java/org/apache/commons/csv/CSVRecordTest.java
@@ -34,6 +34,7 @@ import java.util.Collections;
 import java.util.Map;
 import java.util.TreeMap;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.commons.lang3.StringUtils;
 import org.junit.jupiter.api.BeforeEach;
@@ -297,6 +298,15 @@ public class CSVRecordTest {
     }
 
     @Test
+    public void testToStream() {
+        final AtomicInteger i = new AtomicInteger();
+        record.toStream().forEach(value -> {
+            assertEquals(values[i.get()], value);
+            i.incrementAndGet();
+        });
+    }
+
+    @Test
     public void testToString() {
         assertNotNull(recordWithHeader.toString());
         assertTrue(recordWithHeader.toString().contains("comment="));