1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.spf4j.test.matchers;
17
18 import java.util.function.Predicate;
19 import org.hamcrest.Description;
20 import org.hamcrest.Matcher;
21 import org.hamcrest.TypeSafeMatcher;
22
23
24
25
26
27 public final class PredicateMatcher<T> extends TypeSafeMatcher<T> {
28
29 private final Predicate<T> predicate;
30
31 public PredicateMatcher(final Predicate<T> predicate) {
32 this.predicate = predicate;
33 }
34
35 @Override
36 protected boolean matchesSafely(final T item) {
37 return predicate.test(item);
38 }
39
40 @Override
41 public void describeTo(final Description description) {
42 description.appendText("a object testing positively for '" + predicate + "'");
43 }
44
45 public static <T> Matcher<T> matchesPredicate(final Predicate<T> pred) {
46 return new PredicateMatcher<>(pred);
47 }
48
49 }