From 7f275f9b38f25b0a5b80c7315363c4addd45e190 Mon Sep 17 00:00:00 2001 From: dupirefr Date: Wed, 15 May 2019 08:19:30 +0200 Subject: [PATCH 1/3] [BAEL-2932] Using Predicate.not to negate a method reference --- .../baeldung/predicate/not/FindPeople.java | 31 +++++++++++++++++++ .../com/baeldung/predicate/not/Person.java | 19 ++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java create mode 100644 core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/Person.java diff --git a/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java b/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java new file mode 100644 index 0000000000..845908636f --- /dev/null +++ b/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java @@ -0,0 +1,31 @@ +package com.baeldung.predicate.not; + +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +public class FindPeople { + public static void main(String[] args) { + List people = List.of( + new Person(1), + new Person(18), + new Person(2) + ); + + people.stream() + .filter(Person::isAdult) + .collect(Collectors.toList()); + + people.stream() + .filter(person -> !person.isAdult()) + .collect(Collectors.toList()); + + people.stream() + .filter(Person::isNotAdult) + .collect(Collectors.toList()); + + people.stream() + .filter(Predicate.not(Person::isAdult)) + .collect(Collectors.toList()); + } +} diff --git a/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/Person.java b/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/Person.java new file mode 100644 index 0000000000..3c93e08194 --- /dev/null +++ b/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/Person.java @@ -0,0 +1,19 @@ +package com.baeldung.predicate.not; + +public class Person { + private static final int ADULT_AGE = 18; + + private int age; + + public Person(int age) { + this.age = age; + } + + public boolean isAdult() { + return age >= ADULT_AGE; + } + + public boolean isNotAdult() { + return !isAdult(); + } +} From f5937a3600e11c09927a7cd8ae4a31e5931976e6 Mon Sep 17 00:00:00 2001 From: dupirefr Date: Wed, 15 May 2019 08:29:25 +0200 Subject: [PATCH 2/3] [BAEL-2932] Static import of Predicate.not --- .../src/main/java/com/baeldung/predicate/not/FindPeople.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java b/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java index 845908636f..254f648d30 100644 --- a/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java +++ b/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java @@ -4,6 +4,8 @@ import java.util.List; import java.util.function.Predicate; import java.util.stream.Collectors; +import static java.util.function.Predicate.*; + public class FindPeople { public static void main(String[] args) { List people = List.of( @@ -25,7 +27,7 @@ public class FindPeople { .collect(Collectors.toList()); people.stream() - .filter(Predicate.not(Person::isAdult)) + .filter(not(Person::isAdult)) .collect(Collectors.toList()); } } From 7871014656fd60b1cfc10c27152b1d50c094fae7 Mon Sep 17 00:00:00 2001 From: dupirefr Date: Fri, 17 May 2019 07:59:11 +0200 Subject: [PATCH 3/3] Added tests instead of a main method --- core-java-modules/core-java-11/pom.xml | 15 ++++- .../baeldung/predicate/not/FindPeople.java | 33 ---------- .../{AppTest.java => AppUnitTest.java} | 6 +- ...lientTest.java => HttpClientUnitTest.java} | 2 +- ...uestTest.java => HttpRequestUnitTest.java} | 2 +- ...nseTest.java => HttpResponseUnitTest.java} | 2 +- .../predicate/not/PersonUnitTest.java | 61 +++++++++++++++++++ 7 files changed, 79 insertions(+), 42 deletions(-) delete mode 100644 core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java rename core-java-modules/core-java-11/src/test/java/com/baeldung/{AppTest.java => AppUnitTest.java} (82%) rename core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/{HttpClientTest.java => HttpClientUnitTest.java} (99%) rename core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/{HttpRequestTest.java => HttpRequestUnitTest.java} (99%) rename core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/{HttpResponseTest.java => HttpResponseUnitTest.java} (98%) create mode 100644 core-java-modules/core-java-11/src/test/java/com/baeldung/predicate/not/PersonUnitTest.java diff --git a/core-java-modules/core-java-11/pom.xml b/core-java-modules/core-java-11/pom.xml index b78c141552..4d950bdf8d 100644 --- a/core-java-modules/core-java-11/pom.xml +++ b/core-java-modules/core-java-11/pom.xml @@ -1,5 +1,7 @@ - + 4.0.0 com.baeldung core-java-11 @@ -12,7 +14,7 @@ com.baeldung parent-modules 1.0.0-SNAPSHOT - ../../ + ../.. @@ -21,6 +23,12 @@ guava ${guava.version} + + org.assertj + assertj-core + ${assertj.version} + test + @@ -41,6 +49,7 @@ 11 11 27.1-jre + 3.11.1 diff --git a/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java b/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java deleted file mode 100644 index 254f648d30..0000000000 --- a/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.baeldung.predicate.not; - -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Collectors; - -import static java.util.function.Predicate.*; - -public class FindPeople { - public static void main(String[] args) { - List people = List.of( - new Person(1), - new Person(18), - new Person(2) - ); - - people.stream() - .filter(Person::isAdult) - .collect(Collectors.toList()); - - people.stream() - .filter(person -> !person.isAdult()) - .collect(Collectors.toList()); - - people.stream() - .filter(Person::isNotAdult) - .collect(Collectors.toList()); - - people.stream() - .filter(not(Person::isAdult)) - .collect(Collectors.toList()); - } -} diff --git a/core-java-modules/core-java-11/src/test/java/com/baeldung/AppTest.java b/core-java-modules/core-java-11/src/test/java/com/baeldung/AppUnitTest.java similarity index 82% rename from core-java-modules/core-java-11/src/test/java/com/baeldung/AppTest.java rename to core-java-modules/core-java-11/src/test/java/com/baeldung/AppUnitTest.java index c9f61455bd..73eb8e661a 100644 --- a/core-java-modules/core-java-11/src/test/java/com/baeldung/AppTest.java +++ b/core-java-modules/core-java-11/src/test/java/com/baeldung/AppUnitTest.java @@ -7,7 +7,7 @@ import junit.framework.TestSuite; /** * Unit test for simple App. */ -public class AppTest +public class AppUnitTest extends TestCase { /** @@ -15,7 +15,7 @@ public class AppTest * * @param testName name of the test case */ - public AppTest( String testName ) + public AppUnitTest(String testName ) { super( testName ); } @@ -25,7 +25,7 @@ public class AppTest */ public static Test suite() { - return new TestSuite( AppTest.class ); + return new TestSuite( AppUnitTest.class ); } /** diff --git a/core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpClientTest.java b/core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpClientUnitTest.java similarity index 99% rename from core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpClientTest.java rename to core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpClientUnitTest.java index 0e9c12675c..42f56838c4 100644 --- a/core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpClientTest.java +++ b/core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpClientUnitTest.java @@ -32,7 +32,7 @@ import java.util.stream.Collectors; import org.junit.jupiter.api.Test; -public class HttpClientTest { +public class HttpClientUnitTest { @Test public void shouldReturnSampleDataContentWhenConnectViaSystemProxy() throws IOException, InterruptedException, URISyntaxException { diff --git a/core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpRequestTest.java b/core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpRequestUnitTest.java similarity index 99% rename from core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpRequestTest.java rename to core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpRequestUnitTest.java index 274d3a93fc..b87e6b3c6e 100644 --- a/core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpRequestTest.java +++ b/core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpRequestUnitTest.java @@ -19,7 +19,7 @@ import java.time.Duration; import org.junit.Test; -public class HttpRequestTest { +public class HttpRequestUnitTest { @Test public void shouldReturnStatusOKWhenSendGetRequest() throws IOException, InterruptedException, URISyntaxException { diff --git a/core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpResponseTest.java b/core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpResponseUnitTest.java similarity index 98% rename from core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpResponseTest.java rename to core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpResponseUnitTest.java index abbc0233c1..a5cfc3f6b1 100644 --- a/core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpResponseTest.java +++ b/core-java-modules/core-java-11/src/test/java/com/baeldung/java11/httpclient/test/HttpResponseUnitTest.java @@ -14,7 +14,7 @@ import java.net.http.HttpResponse; import org.junit.Test; -public class HttpResponseTest { +public class HttpResponseUnitTest { @Test public void shouldReturnStatusOKWhenSendGetRequest() throws IOException, InterruptedException, URISyntaxException { diff --git a/core-java-modules/core-java-11/src/test/java/com/baeldung/predicate/not/PersonUnitTest.java b/core-java-modules/core-java-11/src/test/java/com/baeldung/predicate/not/PersonUnitTest.java new file mode 100644 index 0000000000..a4989287be --- /dev/null +++ b/core-java-modules/core-java-11/src/test/java/com/baeldung/predicate/not/PersonUnitTest.java @@ -0,0 +1,61 @@ +package com.baeldung.predicate.not; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +import static java.util.function.Predicate.not; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class PersonUnitTest { + private List people; + + @BeforeEach + void preparePeople() { + people = Arrays.asList( + new Person(1), + new Person(18), + new Person(2) + ); + } + + @Test + void givenPeople_whenFilterIsAdult_thenOneResult() { + List adults = people.stream() + .filter(Person::isAdult) + .collect(Collectors.toList()); + + assertThat(adults).size().isEqualTo(1); + } + + @Test + void givenPeople_whenFilterIsAdultNegated_thenTwoResults() { + List nonAdults = people.stream() + .filter(person -> !person.isAdult()) + .collect(Collectors.toList()); + + assertThat(nonAdults).size().isEqualTo(2); + } + + @Test + void givenPeople_whenFilterIsNotAdult_thenTwoResults() { + List nonAdults = people.stream() + .filter(Person::isNotAdult) + .collect(Collectors.toList()); + + assertThat(nonAdults).size().isEqualTo(2); + } + + @Test + void givenPeople_whenFilterNotIsAdult_thenTwoResults() { + List nonAdults = people.stream() + .filter(not(Person::isAdult)) + .collect(Collectors.toList()); + + assertThat(nonAdults).size().isEqualTo(2); + } +} \ No newline at end of file