|
9 | 9 | import static com.jnape.palatable.lambda.adt.Either.right;
|
10 | 10 | import static com.jnape.palatable.lambda.functions.builtin.fn1.Constantly.constantly;
|
11 | 11 | import static com.jnape.palatable.lambda.io.IO.io;
|
| 12 | +import static org.hamcrest.CoreMatchers.anything; |
12 | 13 |
|
13 | 14 | public final class EitherMatcher<L, R> extends TypeSafeMatcher<Either<L, R>> {
|
14 |
| - private final Either<Matcher<L>, Matcher<R>> matcher; |
| 15 | + private final Either<Matcher<? super L>, Matcher<? super R>> matcher; |
15 | 16 |
|
16 |
| - private EitherMatcher(Either<Matcher<L>, Matcher<R>> matcher) { |
| 17 | + private EitherMatcher(Either<Matcher<? super L>, Matcher<? super R>> matcher) { |
17 | 18 | this.matcher = matcher;
|
18 | 19 | }
|
19 | 20 |
|
@@ -44,11 +45,19 @@ public void describeTo(Description description) {
|
44 | 45 | .unsafePerformIO();
|
45 | 46 | }
|
46 | 47 |
|
47 |
| - public static <L, R> EitherMatcher<L, R> isLeftThat(Matcher<L> lMatcher) { |
| 48 | + public static <L, R> EitherMatcher<L, R> isLeftThat(Matcher<? super L> lMatcher) { |
48 | 49 | return new EitherMatcher<>(left(lMatcher));
|
49 | 50 | }
|
50 | 51 |
|
51 |
| - public static <L, R> EitherMatcher<L, R> isRightThat(Matcher<R> rMatcher) { |
| 52 | + public static <L, R> EitherMatcher<L, R> isLeft() { |
| 53 | + return isLeftThat(anything()); |
| 54 | + } |
| 55 | + |
| 56 | + public static <L, R> EitherMatcher<L, R> isRightThat(Matcher<? super R> rMatcher) { |
52 | 57 | return new EitherMatcher<>(right(rMatcher));
|
53 | 58 | }
|
| 59 | + |
| 60 | + public static <L, R> EitherMatcher<L, R> isRight() { |
| 61 | + return isRightThat(anything()); |
| 62 | + } |
54 | 63 | }
|
0 commit comments