From 8f9f3bdfee0ff98e32cad1b910707ecd26c0d4b3 Mon Sep 17 00:00:00 2001 From: Egima profile Date: Tue, 6 Dec 2016 23:55:33 +0300 Subject: [PATCH] Added new code snippets to OptionalTest to further demo filter API (#881) * made changes to java reflection * removed redundant method makeSound in Animal abstract class * added project for play-framework article * added project for regex * changed regex project from own model to core-java * added project for routing in play * made changes to regex project * refactored code for REST API with Play project * refactored student store indexing to zero base * added unit tests, removed bad names * added NIO Selector project under core-java module * requested changes made * added project for nio2 * standardized exception based tests * fixed exception based tests * removed redundant files * added network interface project * used UUID other than timestamps * fixed network interface tests * removed filetest change * made changes to NIO2 FileTest names * added project for asyncronous channel apis * added project for NIO2 advanced filesystems APIS * merge conflicts * merged changes to asyncfiletest with future get API * removed while loops from async client and server * added project for java8 optional * fixed merge conflicts in spring-core * fixed optional * fixed optional * fixed asyncechotest * shifted optional to own package * made additional tests to demo filter API --- .../java/com/baeldung/optional/Modem.java | 13 +++++++ .../{java_8_features => optional}/Person.java | 2 +- .../java/nio2/async/AsyncEchoTest.java | 2 +- .../baeldung/java8/optional/OptionalTest.java | 34 +++++++++++++++++-- 4 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 core-java/src/main/java/com/baeldung/optional/Modem.java rename core-java/src/main/java/com/baeldung/{java_8_features => optional}/Person.java (95%) diff --git a/core-java/src/main/java/com/baeldung/optional/Modem.java b/core-java/src/main/java/com/baeldung/optional/Modem.java new file mode 100644 index 0000000000..c37739819c --- /dev/null +++ b/core-java/src/main/java/com/baeldung/optional/Modem.java @@ -0,0 +1,13 @@ +package com.baeldung.optional; + +public class Modem { + private Double price; + + public Modem(Double price) { + this.price = price; + } + + public Double getPrice() { + return price; + } +} diff --git a/core-java/src/main/java/com/baeldung/java_8_features/Person.java b/core-java/src/main/java/com/baeldung/optional/Person.java similarity index 95% rename from core-java/src/main/java/com/baeldung/java_8_features/Person.java rename to core-java/src/main/java/com/baeldung/optional/Person.java index 82b6819699..47473c29ea 100644 --- a/core-java/src/main/java/com/baeldung/java_8_features/Person.java +++ b/core-java/src/main/java/com/baeldung/optional/Person.java @@ -1,4 +1,4 @@ -package com.baeldung.java_8_features; +package com.baeldung.optional; import java.util.Optional; diff --git a/core-java/src/test/java/com/baeldung/java/nio2/async/AsyncEchoTest.java b/core-java/src/test/java/com/baeldung/java/nio2/async/AsyncEchoTest.java index 93cb3e1eb6..9e20a7144f 100644 --- a/core-java/src/test/java/com/baeldung/java/nio2/async/AsyncEchoTest.java +++ b/core-java/src/test/java/com/baeldung/java/nio2/async/AsyncEchoTest.java @@ -33,4 +33,4 @@ public class AsyncEchoTest { client.stop(); } -} +} \ No newline at end of file diff --git a/core-java/src/test/java/com/baeldung/java8/optional/OptionalTest.java b/core-java/src/test/java/com/baeldung/java8/optional/OptionalTest.java index 1038043d49..672c4f4aba 100644 --- a/core-java/src/test/java/com/baeldung/java8/optional/OptionalTest.java +++ b/core-java/src/test/java/com/baeldung/java8/optional/OptionalTest.java @@ -11,7 +11,8 @@ import java.util.Optional; import org.junit.Test; -import com.baeldung.java_8_features.Person; +import com.baeldung.optional.Person; +import com.baeldung.optional.Modem; public class OptionalTest { // creating Optional @@ -95,7 +96,36 @@ public class OptionalTest { boolean is2017 = yearOptional.filter(y -> y == 2017).isPresent(); assertFalse(is2017); } + @Test + public void whenFiltersWithoutOptional_thenCorrect() { + assertTrue(priceIsInRange1(new Modem(10.0))); + assertFalse(priceIsInRange1(new Modem(9.9))); + assertFalse(priceIsInRange1(new Modem(null))); + assertFalse(priceIsInRange1(new Modem(15.5))); + } + + @Test + public void whenFiltersWithOptional_thenCorrect() { + assertTrue(priceIsInRange2(new Modem(10.0))); + assertFalse(priceIsInRange2(new Modem(9.9))); + assertFalse(priceIsInRange2(new Modem(null))); + assertFalse(priceIsInRange2(new Modem(15.5))); + } + + public boolean priceIsInRange1(Modem modem) { + boolean isInRange = false; + if (modem != null && modem.getPrice() != null && (modem.getPrice() >= 10 && modem.getPrice() <= 15)) { + isInRange = true; + } + return isInRange; + } + + public boolean priceIsInRange2(Modem modem2) { + Optional modemOptional = Optional.ofNullable(modem2); + boolean isInRange = modemOptional.filter(modem -> Optional.ofNullable(modem.getPrice()).orElse(-1.0) >= 10 && modem.getPrice() <= 15).isPresent(); + return isInRange; + } // Transforming Value With map() @Test public void givenOptional_whenMapWorks_thenCorrect() { @@ -203,4 +233,4 @@ public class OptionalTest { System.out.println("Getting default value..."); return "Default Value"; } -} +} \ No newline at end of file