org.junit.internal.runners.ClassRoadie 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.runners;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.List;
import org.junit.internal.AssumptionViolatedException;
import org.junit.runner.Description;
import org.junit.runner.notification.Failure;
import org.junit.runner.notification.RunNotifier;
import org.junit.runners.BlockJUnit4ClassRunner;
/**
* @deprecated Included for backwards compatibility with JUnit 4.4. Will be
* removed in the next major release. Please use
* {@link BlockJUnit4ClassRunner} in place of {@link JUnit4ClassRunner}.
*/
@Deprecated
public class ClassRoadie {
private RunNotifier notifier;
private TestClass testClass;
private Description description;
private final Runnable runnable;
public ClassRoadie(RunNotifier notifier, TestClass testClass,
Description description, Runnable runnable) {
this.notifier = notifier;
this.testClass = testClass;
this.description = description;
this.runnable = runnable;
}
protected void runUnprotected() {
runnable.run();
}
protected void addFailure(Throwable targetException) {
notifier.fireTestFailure(new Failure(description, targetException));
}
public void runProtected() {
try {
runBefores();
runUnprotected();
} catch (FailedBefore e) {
} finally {
runAfters();
}
}
private void runBefores() throws FailedBefore {
try {
try {
List befores = testClass.getBefores();
for (Method before : befores) {
before.invoke(null);
}
} catch (InvocationTargetException e) {
throw e.getTargetException();
}
} catch (AssumptionViolatedException e) {
throw new FailedBefore();
} catch (Throwable e) {
addFailure(e);
throw new FailedBefore();
}
}
private void runAfters() {
List afters = testClass.getAfters();
for (Method after : afters) {
try {
after.invoke(null);
} catch (InvocationTargetException e) {
addFailure(e.getTargetException());
} catch (Throwable e) {
addFailure(e); // Untested, but seems impossible
}
}
}
}