org.junit.internal.requests.ClassRequest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of virtdata-lib-realer Show documentation
Show all versions of virtdata-lib-realer Show documentation
With inspiration from other libraries
package org.junit.internal.requests;
import org.junit.internal.builders.AllDefaultPossibilitiesBuilder;
import org.junit.runner.Request;
import org.junit.runner.Runner;
public class ClassRequest extends Request {
private final Object runnerLock = new Object();
/*
* We have to use the f prefix, because IntelliJ's JUnit4IdeaTestRunner uses
* reflection to access this field. See
* https://github.com/junit-team/junit/issues/960
*/
private final Class> fTestClass;
private final boolean canUseSuiteMethod;
private volatile Runner runner;
public ClassRequest(Class> testClass, boolean canUseSuiteMethod) {
this.fTestClass = testClass;
this.canUseSuiteMethod = canUseSuiteMethod;
}
public ClassRequest(Class> testClass) {
this(testClass, true);
}
@Override
public Runner getRunner() {
if (runner == null) {
synchronized (runnerLock) {
if (runner == null) {
runner = new AllDefaultPossibilitiesBuilder(canUseSuiteMethod).safeRunnerForClass(fTestClass);
}
}
}
return runner;
}
}