You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2017/11/16 13:20:33 UTC

[6/8] james-project git commit: JAMES-2219 Introduce OptionalUtils::or

JAMES-2219 Introduce OptionalUtils::or


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

Branch: refs/heads/master
Commit: 9c14a96c478ed453c8faa23c867971975c89994a
Parents: 6a9f1f9
Author: benwa <bt...@linagora.com>
Authored: Thu Nov 16 10:18:05 2017 +0700
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Thu Nov 16 14:19:17 2017 +0100

----------------------------------------------------------------------
 .../org/apache/james/util/OptionalUtils.java    |  6 ++++
 .../apache/james/util/OptionalUtilsTest.java    | 36 ++++++++++++++++++++
 2 files changed, 42 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/9c14a96c/server/container/util-java8/src/main/java/org/apache/james/util/OptionalUtils.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/main/java/org/apache/james/util/OptionalUtils.java b/server/container/util-java8/src/main/java/org/apache/james/util/OptionalUtils.java
index 000feb8..fc20117 100644
--- a/server/container/util-java8/src/main/java/org/apache/james/util/OptionalUtils.java
+++ b/server/container/util-java8/src/main/java/org/apache/james/util/OptionalUtils.java
@@ -39,4 +39,10 @@ public class OptionalUtils {
         return optional.map(Stream::of)
             .orElse(Stream.of());
     }
+
+    public static <T> Optional<T> or(Optional<T> optional1, Optional<T> optional2) {
+        return optional1.map(Optional::of)
+            .filter(Optional::isPresent)
+            .orElse(optional2);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/9c14a96c/server/container/util-java8/src/test/java/org/apache/james/util/OptionalUtilsTest.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/test/java/org/apache/james/util/OptionalUtilsTest.java b/server/container/util-java8/src/test/java/org/apache/james/util/OptionalUtilsTest.java
index 80a8684..4af7b23 100644
--- a/server/container/util-java8/src/test/java/org/apache/james/util/OptionalUtilsTest.java
+++ b/server/container/util-java8/src/test/java/org/apache/james/util/OptionalUtilsTest.java
@@ -83,4 +83,40 @@ public class OptionalUtilsTest {
                 .collect(Guavate.toImmutableList()))
             .containsExactly(value);
     }
+
+    @Test
+    public void orShouldReturnEmptyWhenBothEmpty() {
+        assertThat(
+            OptionalUtils.or(
+                Optional.empty(),
+                Optional.empty()))
+            .isEmpty();
+    }
+
+    @Test
+    public void orShouldReturnFirstValueWhenOnlyFirstValue() {
+        assertThat(
+            OptionalUtils.or(
+                Optional.of(18),
+                Optional.empty()))
+            .contains(18);
+    }
+
+    @Test
+    public void orShouldReturnSecondValueWhenOnlySecondValue() {
+        assertThat(
+            OptionalUtils.or(
+                Optional.empty(),
+                Optional.of(18)))
+            .contains(18);
+    }
+
+    @Test
+    public void orShouldReturnFirstValueWhenBothValues() {
+        assertThat(
+            OptionalUtils.or(
+                Optional.of(1),
+                Optional.of(2)))
+            .contains(1);
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org