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
Nested ClassesModifier and TypeClassDescriptionstatic final classAllows syntactic sugar of usingbothandand.static final classAllows syntactic sugar of usingeitherandor. -
Constructor Summary
ConstructorsConstructorDescriptionCombinableMatcher(Matcher<? super T> matcher) Constructor, best called fromeitherorboth. -
Method Summary
Modifier and TypeMethodDescriptionSpecify the second matcher in aCombinableMatcherpair.static <LHS> CombinableMatcher.CombinableBothMatcher<LHS> Creates a matcher that matches when both of the specified matchers match the examined object.voiddescribeTo(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 booleanmatchesSafely(T item, Description mismatch) Subclasses should implement this.Specify the second matcher in aCombinableMatcherpair.Methods inherited from class org.hamcrest.TypeSafeDiagnosingMatcher
describeMismatch, matchesMethods inherited from class org.hamcrest.BaseMatcher
_dont_implement_Matcher___instead_extend_BaseMatcher_, isNotNull, toString
-
Constructor Details
-
CombinableMatcher
Constructor, best called fromeitherorboth.- Parameters:
matcher- the starting matcher- See Also:
-
-
Method Details
-
matchesSafely
Description copied from class:TypeSafeDiagnosingMatcherSubclasses should implement this. The item will already have been checked for the specific type and will never be null.- Specified by:
matchesSafelyin classTypeSafeDiagnosingMatcher<T>- Parameters:
item- the item.mismatch- the mismatch description.- Returns:
- boolean true/false depending if item matches matcher.
-
describeTo
Description copied from interface:SelfDescribingGenerates 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 aCombinableMatcherpair.- Parameters:
other- the second matcher- Returns:
- the combined matcher
-
or
Specify the second matcher in aCombinableMatcherpair.- 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.
-