From af9f75b66f9ae658e3881f10a5fe731937b42cdf Mon Sep 17 00:00:00 2001 From: wopqw Date: Fri, 7 Apr 2017 01:47:53 +0300 Subject: [PATCH 1/2] implemented methods filter, flatMap, orElse --- src/test/java/option/OptionalExample.java | 54 +++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/src/test/java/option/OptionalExample.java b/src/test/java/option/OptionalExample.java index db18993..83b72cc 100644 --- a/src/test/java/option/OptionalExample.java +++ b/src/test/java/option/OptionalExample.java @@ -5,6 +5,7 @@ import java.util.Optional; import java.util.concurrent.ThreadLocalRandom; import java.util.function.Function; +import java.util.function.Predicate; import static org.junit.Assert.assertEquals; @@ -55,4 +56,57 @@ private Optional getOptional() { ? Optional.empty() : Optional.of("abc"); } + + @Test + public void filter(){ + + final Optional o1 = getOptional(); + + final Predicate lenIs3 = string -> string.length() == 3; + + final Optional expected = o1.filter(lenIs3); + + final Optional actual; + + if(o1.isPresent() && lenIs3.test(o1.get())) + actual = Optional.of(o1.get()); + else + actual = Optional.empty(); + + assertEquals(expected, actual); + } + + @Test + public void flatMap(){ + + final Optional o1 = getOptional(); + + final Function> func = Optional::of; + + final Optional expected = o1.flatMap(func); + + final Optional actual; + + if(o1.isPresent()) + actual = func.apply(o1.get()); + else actual = Optional.empty(); + + assertEquals(expected, actual); + } + + @Test + public void orElse(){ + + final Optional o1 = getOptional(); + + final String expected = o1.orElse("orElse"); + + final String actual; + + if(o1.isPresent()) + actual = o1.get(); + else actual = "orElse"; + + assertEquals(expected, actual); + } } From 724d8a38b4cf3af4d9d270dafd268601ff567cae Mon Sep 17 00:00:00 2001 From: Ilia Onishchenko Date: Fri, 14 Apr 2017 11:52:54 +0300 Subject: [PATCH 2/2] implemented methods filter, flatMap, orElse --- src/test/java/option/OptionalExample.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/option/OptionalExample.java b/src/test/java/option/OptionalExample.java index 83b72cc..7102ed6 100644 --- a/src/test/java/option/OptionalExample.java +++ b/src/test/java/option/OptionalExample.java @@ -1,5 +1,7 @@ package option; +import static org.junit.Assert.assertEquals; + import org.junit.Test; import java.util.Optional; @@ -7,8 +9,6 @@ import java.util.function.Function; import java.util.function.Predicate; -import static org.junit.Assert.assertEquals; - public class OptionalExample { @Test @@ -19,7 +19,7 @@ public void get() { o1.orElse("t"); o1.orElseGet(() -> "t"); - o1.orElseThrow(() -> new UnsupportedOperationException()); +// o1.orElseThrow(() -> new UnsupportedOperationException()); } @Test