org.hamcrest.core.AllOf Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hamcrest Show documentation
Show all versions of hamcrest Show documentation
Core API and libraries of hamcrest matcher framework.
The newest version!
package org.hamcrest.core;
import org.hamcrest.Description;
import org.hamcrest.DiagnosingMatcher;
import org.hamcrest.Matcher;
import java.util.Arrays;
/**
* Calculates the logical conjunction of multiple matchers. Evaluation is shortcut, so
* subsequent matchers are not called if an earlier matcher returns false
.
*/
public class AllOf extends DiagnosingMatcher {
private final Iterable> matchers;
@SafeVarargs
public AllOf(Matcher super T> ... matchers) {
this(Arrays.asList(matchers));
}
public AllOf(Iterable> matchers) {
this.matchers = matchers;
}
@Override
public boolean matches(Object o, Description mismatch) {
for (Matcher super T> matcher : matchers) {
if (!matcher.matches(o)) {
mismatch.appendDescriptionOf(matcher).appendText(" ");
matcher.describeMismatch(o, mismatch);
return false;
}
}
return true;
}
@Override
public void describeTo(Description description) {
description.appendList("(", " " + "and" + " ", ")", matchers);
}
/**
* Creates a matcher that matches if the examined object matches ALL of the specified matchers.
* For example:
* assertThat("myValue", allOf(startsWith("my"), containsString("Val")))
*
* @param
* the matcher type.
* @param matchers
* all the matchers must pass.
* @return The matcher.
*/
public static Matcher allOf(Iterable> matchers) {
return new AllOf<>(matchers);
}
/**
* Creates a matcher that matches if the examined object matches ALL of the specified matchers.
* For example:
* assertThat("myValue", allOf(startsWith("my"), containsString("Val")))
*
* @param
* the matcher type.
* @param matchers
* all the matchers must pass.
* @return The matcher.
*/
@SafeVarargs
public static Matcher allOf(Matcher super T>... matchers) {
return allOf((Iterable) Arrays.asList(matchers));
}
}