From e66f6f700cbf984de1a24ebb05bd3d599bfd5e18 Mon Sep 17 00:00:00 2001 From: Urs Metz Date: Thu, 10 Sep 2015 16:09:44 +0100 Subject: [PATCH 1/2] Fix type signature of ExpectedException#expect() Following the PECS guideline expect() should take Matcher. One test had to be adjusted so that the code still compiles: any(Expection.class) was replaced by instanceOf(Expection.class). Judging from the JavaDoc of both matchers the latter is anyway the better fitting one. --- .../java/org/hamcrest/junit/ExpectedException.java | 2 +- .../junit/ExpectedExceptionMatcherBuilder.java | 11 +++-------- .../org/hamcrest/junit/ExpectedExceptionTest.java | 2 +- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/hamcrest/junit/ExpectedException.java b/src/main/java/org/hamcrest/junit/ExpectedException.java index 77be281..7d59f55 100644 --- a/src/main/java/org/hamcrest/junit/ExpectedException.java +++ b/src/main/java/org/hamcrest/junit/ExpectedException.java @@ -170,7 +170,7 @@ public Statement apply(Statement base, * throw e; * } */ - public void expect(Matcher matcher) { + public void expect(Matcher matcher) { matcherBuilder.add(matcher); } diff --git a/src/main/java/org/hamcrest/junit/ExpectedExceptionMatcherBuilder.java b/src/main/java/org/hamcrest/junit/ExpectedExceptionMatcherBuilder.java index e67ef10..6eece97 100644 --- a/src/main/java/org/hamcrest/junit/ExpectedExceptionMatcherBuilder.java +++ b/src/main/java/org/hamcrest/junit/ExpectedExceptionMatcherBuilder.java @@ -13,9 +13,9 @@ */ class ExpectedExceptionMatcherBuilder { - private final List> matchers = new ArrayList>(); + private final List> matchers = new ArrayList>(); - void add(Matcher matcher) { + void add(Matcher matcher) { matchers.add(matcher); } @@ -31,12 +31,7 @@ private Matcher allOfTheMatchers() { if (matchers.size() == 1) { return cast(matchers.get(0)); } - return allOf(castedMatchers()); - } - - @SuppressWarnings({"unchecked", "rawtypes"}) - private List> castedMatchers() { - return new ArrayList>((List) matchers); + return allOf(matchers); } @SuppressWarnings("unchecked") diff --git a/src/test/java/org/hamcrest/junit/ExpectedExceptionTest.java b/src/test/java/org/hamcrest/junit/ExpectedExceptionTest.java index dfe4151..054fe4c 100644 --- a/src/test/java/org/hamcrest/junit/ExpectedExceptionTest.java +++ b/src/test/java/org/hamcrest/junit/ExpectedExceptionTest.java @@ -227,7 +227,7 @@ public static class ExpectsMatcher { @Test public void throwsMore() { - thrown.expect(any(Exception.class)); + thrown.expect(instanceOf(Exception.class)); throw new NullPointerException("Ack!"); } } From f79ebe233a78c8177e07792c1e5763b3745ded70 Mon Sep 17 00:00:00 2001 From: Urs Metz Date: Thu, 10 Sep 2015 16:17:56 +0100 Subject: [PATCH 2/2] Simplify ExpectedExceptionMatcherBuilder * use Java 7's diamond operator * harmonize generics * remove unused "generics handling" code --- .../junit/ExpectedExceptionMatcherBuilder.java | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/hamcrest/junit/ExpectedExceptionMatcherBuilder.java b/src/main/java/org/hamcrest/junit/ExpectedExceptionMatcherBuilder.java index 6eece97..e1d82f9 100644 --- a/src/main/java/org/hamcrest/junit/ExpectedExceptionMatcherBuilder.java +++ b/src/main/java/org/hamcrest/junit/ExpectedExceptionMatcherBuilder.java @@ -1,7 +1,6 @@ package org.hamcrest.junit; import static org.hamcrest.CoreMatchers.allOf; -import static org.hamcrest.junit.JUnitMatchers.isThrowable; import java.util.ArrayList; import java.util.List; @@ -13,7 +12,7 @@ */ class ExpectedExceptionMatcherBuilder { - private final List> matchers = new ArrayList>(); + private final List> matchers = new ArrayList<>(); void add(Matcher matcher) { matchers.add(matcher); @@ -23,19 +22,8 @@ boolean expectsThrowable() { return !matchers.isEmpty(); } - Matcher build() { - return isThrowable(allOfTheMatchers()); - } - - private Matcher allOfTheMatchers() { - if (matchers.size() == 1) { - return cast(matchers.get(0)); - } + Matcher build() { return allOf(matchers); } - @SuppressWarnings("unchecked") - private Matcher cast(Matcher singleMatcher) { - return (Matcher) singleMatcher; - } }