Package org.hamcrest.core
Class CombinableMatcher<T>
java.lang.Object
org.hamcrest.BaseMatcher<T>
org.hamcrest.TypeSafeDiagnosingMatcher<T>
org.hamcrest.core.CombinableMatcher<T>
- Type Parameters:
T
- the type of matcher being combined.
- All Implemented Interfaces:
Matcher<T>
,SelfDescribing
Allows matchers of the same type to be combined using
either
/or
, or
both
/and
.
For example:
import static org.hamcrest.core.CombinableMatcher.either;
import static org.hamcrest.core.CombinableMatcher.both;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.not;
Matcher<Integer> either_3_or_4 = either(equalTo(3)).or(equalTo(4));
Matcher<Integer> neither_3_nor_4 = both(not(equalTo(3))).and(not(equalTo(4)));
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
Allows syntactic sugar of usingboth
andand
.static final class
Allows syntactic sugar of usingeither
andor
. -
Constructor Summary
ConstructorDescriptionCombinableMatcher
(Matcher<? super T> matcher) Constructor, best called fromeither
orboth
. -
Method Summary
Modifier and TypeMethodDescriptionSpecify the second matcher in aCombinableMatcher
pair.static <LHS> CombinableMatcher.CombinableBothMatcher
<LHS> Creates a matcher that matches when both of the specified matchers match the examined object.void
describeTo
(Description description) Generates a description of the object.static <LHS> CombinableMatcher.CombinableEitherMatcher
<LHS> Creates a matcher that matches when either of the specified matchers match the examined object.protected boolean
matchesSafely
(T item, Description mismatch) Subclasses should implement this.Specify the second matcher in aCombinableMatcher
pair.Methods inherited from class org.hamcrest.TypeSafeDiagnosingMatcher
describeMismatch, matches
Methods inherited from class org.hamcrest.BaseMatcher
_dont_implement_Matcher___instead_extend_BaseMatcher_, isNotNull, toString
-
Constructor Details
-
CombinableMatcher
Constructor, best called fromeither
orboth
.- Parameters:
matcher
- the starting matcher- See Also:
-
-
Method Details
-
matchesSafely
Description copied from class:TypeSafeDiagnosingMatcher
Subclasses should implement this. The item will already have been checked for the specific type and will never be null.- Specified by:
matchesSafely
in classTypeSafeDiagnosingMatcher<T>
- Parameters:
item
- the item.mismatch
- the mismatch description.- Returns:
- boolean true/false depending if item matches matcher.
-
describeTo
Description copied from interface:SelfDescribing
Generates a description of the object. The description may be part of a description of a larger object of which this is just a component, so it should be worded appropriately.- Parameters:
description
- The description to be built or appended to.
-
and
Specify the second matcher in aCombinableMatcher
pair.- Parameters:
other
- the second matcher- Returns:
- the combined matcher
-
or
Specify the second matcher in aCombinableMatcher
pair.- Parameters:
other
- the second matcher- Returns:
- the combined matcher
-
both
Creates a matcher that matches when both of the specified matchers match the examined object. For example:assertThat("fab", both(containsString("a")).and(containsString("b")))
- Type Parameters:
LHS
- the matcher type.- Parameters:
matcher
- the matcher to combine, and both must pass.- Returns:
- The matcher.
-
either
public static <LHS> CombinableMatcher.CombinableEitherMatcher<LHS> either(Matcher<? super LHS> matcher) Creates a matcher that matches when either of the specified matchers match the examined object. For example:assertThat("fan", either(containsString("a")).or(containsString("b")))
- Type Parameters:
LHS
- the matcher type.- Parameters:
matcher
- the matcher to combine, and either must pass.- Returns:
- The matcher.
-