org.junit.internal.matchers.StacktracePrintingMatcher 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 unit testing framework for Java, created by Erich Gamma and Kent Beck.
package org.junit.internal.matchers;
import org.hamcrest.Description;
import org.hamcrest.Factory;
import org.hamcrest.Matcher;
import org.junit.internal.Throwables;
/**
* A matcher that delegates to throwableMatcher and in addition appends the
* stacktrace of the actual Throwable in case of a mismatch.
*
* @deprecated use {@code org.hamcrest.junit.JunitMatchers.isThrowable()}
* or {@code org.hamcrest.junit.JunitMatchers.isException()}
*/
@Deprecated
public class StacktracePrintingMatcher extends
org.hamcrest.TypeSafeMatcher {
private final Matcher throwableMatcher;
public StacktracePrintingMatcher(Matcher throwableMatcher) {
this.throwableMatcher = throwableMatcher;
}
public void describeTo(Description description) {
throwableMatcher.describeTo(description);
}
@Override
protected boolean matchesSafely(T item) {
return throwableMatcher.matches(item);
}
@Override
protected void describeMismatchSafely(T item, Description description) {
throwableMatcher.describeMismatch(item, description);
description.appendText("\nStacktrace was: ");
description.appendText(readStacktrace(item));
}
private String readStacktrace(Throwable throwable) {
return Throwables.getStacktrace(throwable);
}
@Factory
public static Matcher isThrowable(
Matcher throwableMatcher) {
return new StacktracePrintingMatcher(throwableMatcher);
}
@Factory
public static Matcher isException(
Matcher exceptionMatcher) {
return new StacktracePrintingMatcher(exceptionMatcher);
}
}