JAMES-1925 OptionalConverter should handle convertion to streams

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/28acf6f5
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/28acf6f5
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/28acf6f5

Branch: refs/heads/master
Commit: 28acf6f5d86e94ca7d0002b8d14569e21760cc99
Parents: a06a008
Author: Benoit Tellier <[email protected]>
Authored: Tue Feb 14 08:01:42 2017 +0700
Committer: Antoine Duprat <[email protected]>
Committed: Wed Feb 15 12:00:17 2017 +0100

----------------------------------------------------------------------
 .../apache/james/util/OptionalConverter.java    |  6 ++++++
 .../james/util/OptionalConverterTest.java       | 20 ++++++++++++++++++++
 2 files changed, 26 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/28acf6f5/server/container/util-java8/src/main/java/org/apache/james/util/OptionalConverter.java
----------------------------------------------------------------------
diff --git 
a/server/container/util-java8/src/main/java/org/apache/james/util/OptionalConverter.java
 
b/server/container/util-java8/src/main/java/org/apache/james/util/OptionalConverter.java
index 86cf398..fafec7a 100644
--- 
a/server/container/util-java8/src/main/java/org/apache/james/util/OptionalConverter.java
+++ 
b/server/container/util-java8/src/main/java/org/apache/james/util/OptionalConverter.java
@@ -19,6 +19,7 @@
 package org.apache.james.util;
 
 import java.util.Optional;
+import java.util.stream.Stream;
 
 public class OptionalConverter {
 
@@ -29,4 +30,9 @@ public class OptionalConverter {
     public static <T> com.google.common.base.Optional<T> toGuava(Optional<T> 
java) {
         return com.google.common.base.Optional.fromNullable(java.orElse(null));
     }
+
+    public static <T> Stream<T> toStream(Optional<T> optional) {
+        return optional.map(Stream::of)
+            .orElse(Stream.of());
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/28acf6f5/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java
----------------------------------------------------------------------
diff --git 
a/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java
 
b/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java
index 6caee6a..5356f63 100644
--- 
a/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java
+++ 
b/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java
@@ -21,17 +21,37 @@ package org.apache.james.util;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
+import com.github.steveash.guavate.Guavate;
+
 public class OptionalConverterTest {
 
     @Rule
     public ExpectedException expectedException = ExpectedException.none();
 
     @Test
+    public void toStreamShouldConvertEmptyOptionalToEmptyStream() {
+        assertThat(
+            OptionalConverter.toStream(Optional.empty())
+                .collect(Guavate.toImmutableList()))
+            .isEmpty();
+    }
+
+    @Test
+    public void toStreamShouldConvertFullOptionalToStream() {
+        long value = 18L;
+        assertThat(
+            OptionalConverter.toStream(Optional.of(value))
+                .collect(Guavate.toImmutableList()))
+            .containsExactly(value);
+    }
+
+    @Test
     public void fromGuavaShouldThrowWhenGuavaIsNull() {
         expectedException.expect(NullPointerException.class);
         OptionalConverter.fromGuava(null);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to