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