From 3368f70469871921c12df73273c9a3a06709e4ed Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 31 Mar 2016 11:44:39 +0100 Subject: Move hasFeature to ExtraMatchers --- .../org/zwobble/couscous/tests/util/ExtraMatchers.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/test/java/org/zwobble/couscous/tests/util/ExtraMatchers.java') diff --git a/src/test/java/org/zwobble/couscous/tests/util/ExtraMatchers.java b/src/test/java/org/zwobble/couscous/tests/util/ExtraMatchers.java index 3107d53..d79cb05 100644 --- a/src/test/java/org/zwobble/couscous/tests/util/ExtraMatchers.java +++ b/src/test/java/org/zwobble/couscous/tests/util/ExtraMatchers.java @@ -2,8 +2,11 @@ package org.zwobble.couscous.tests.util; import org.hamcrest.Description; import org.hamcrest.DiagnosingMatcher; +import org.hamcrest.FeatureMatcher; import org.hamcrest.Matcher; +import java.util.function.Function; + public class ExtraMatchers { public static Matcher isInstance(Class type, Matcher downcastMatcher) { return new DiagnosingMatcher() { @@ -36,4 +39,16 @@ public class ExtraMatchers { } }; } + + public static Matcher hasFeature( + String name, + Function extract, + Matcher subMatcher) { + return new FeatureMatcher(subMatcher, name, name) { + @Override + protected U featureValueOf(T actual) { + return extract.apply(actual); + } + }; + } } -- cgit v1.2.3