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]
