org.junit.rules.ExpectedExceptionMatcherBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of junit Show documentation
Show all versions of junit Show documentation
JUnit is a regression testing framework written by Erich Gamma and Kent Beck.
It is used by the developer who implements unit tests in Java.
package org.junit.rules;
import static org.hamcrest.CoreMatchers.allOf;
import static org.junit.matchers.JUnitMatchers.isThrowable;
import java.util.ArrayList;
import java.util.List;
import org.hamcrest.Matcher;
/**
* Builds special matcher used by {@link ExpectedException}.
*/
class ExpectedExceptionMatcherBuilder {
private final List> fMatchers = new ArrayList>();
void add(Matcher matcher) {
fMatchers.add(matcher);
}
boolean expectsThrowable() {
return !fMatchers.isEmpty();
}
Matcher build() {
return isThrowable(allOfTheMatchers());
}
private Matcher allOfTheMatchers() {
if (fMatchers.size() == 1) {
return cast(fMatchers.get(0));
}
return allOf(castedMatchers());
}
@SuppressWarnings({"unchecked", "rawtypes"})
private List> castedMatchers() {
return new ArrayList>((List) fMatchers);
}
@SuppressWarnings("unchecked")
private Matcher cast(Matcher singleMatcher) {
return (Matcher) singleMatcher;
}
}