Top Description Inners Fields Constructors Methods
org.junit.vintage.engine.discovery

pack-priv Class DefensiveAllDefaultPossibilitiesBuilder

extends AllDefaultPossibilitiesBuilder
Class Inheritance
Imports
java.lang.reflect.Method, java.util.function.Predicate, org.jspecify.annotations.Nullable, org.junit.Ignore, org.junit.internal.builders.AllDefaultPossibilitiesBuilder, .AnnotatedBuilder, .IgnoredBuilder, .IgnoredClassRunner, .JUnit4Builder, org.junit.platform.commons.logging.Logger, .LoggerFactory, org.junit.platform.commons.util.ReflectionUtils, org.junit.runner.Runner, org.junit.runner.manipulation.Filterable, org.junit.runners.model.RunnerBuilder

Customization of AllDefaultPossibilitiesBuilder from JUnit 4 to ignore certain classes that would otherwise be reported as errors or cause infinite recursion.
Since
4.12
See Also
DefensiveAnnotatedBuilder, DefensiveJUnit4Builder, IgnoredClassRunner

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
DefensiveAllDefaultPossibilitiesBuilder.DefensiveAnnotatedBuilder

Customization of AnnotatedBuilder that ignores classes annotated with @RunWith(JUnitPlatform.class) to avoid infinite recursion.

private static class
DefensiveAllDefaultPossibilitiesBuilder.DefensiveJUnit4Builder

Customization of JUnit4Builder that ignores classes that do not contain any test methods in order not to report errors for them.

private static class

Field Summary

Modifier and TypeField and Description
private final AnnotatedBuilder
private final IgnoredBuilder
private final JUnit4Builder
private static final Logger

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
protected AnnotatedBuilder
private IgnoringRunnerDecorator
decorateIgnoredTestClass(Runner runner)

Instead of checking for the Ignore annotation and returning an IgnoredClassRunner from IgnoredBuilder, we've let the super class determine the regular runner that would have been used if Ignore hadn't been present.

protected IgnoredBuilder
pack-priv boolean
isIgnored(Runner runner)

protected JUnit4Builder
public Runner
runnerForClass(Class<?> testClass)

Overrides org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass.

Override to calculate the correct runner for a test class at runtime.

Inherited from org.junit.internal.builders.AllDefaultPossibilitiesBuilder:
junit3BuildersuiteMethodBuilder

Field Detail

annotatedBuilderback to summary
private final AnnotatedBuilder annotatedBuilder
ignoredBuilderback to summary
private final IgnoredBuilder ignoredBuilder
junit4Builderback to summary
private final JUnit4Builder junit4Builder
loggerback to summary
private static final Logger logger

Constructor Detail

DefensiveAllDefaultPossibilitiesBuilderback to summary
pack-priv DefensiveAllDefaultPossibilitiesBuilder()
Annotations
@SuppressWarnings:deprecation

Method Detail

annotatedBuilderback to summary
protected AnnotatedBuilder annotatedBuilder()

Overrides org.junit.internal.builders.AllDefaultPossibilitiesBuilder.annotatedBuilder.

Annotations
@Override
decorateIgnoredTestClassback to summary
private IgnoringRunnerDecorator decorateIgnoredTestClass(Runner runner)

Instead of checking for the Ignore annotation and returning an IgnoredClassRunner from IgnoredBuilder, we've let the super class determine the regular runner that would have been used if Ignore hadn't been present. Now, we decorate the runner to override its runtime behavior (i.e. skip execution) but return its regular org.junit.runner.Description.

ignoredBuilderback to summary
protected IgnoredBuilder ignoredBuilder()

Overrides org.junit.internal.builders.AllDefaultPossibilitiesBuilder.ignoredBuilder.

Annotations
@Override
isIgnoredback to summary
pack-priv boolean isIgnored(Runner runner)
junit4Builderback to summary
protected JUnit4Builder junit4Builder()

Overrides org.junit.internal.builders.AllDefaultPossibilitiesBuilder.junit4Builder.

Annotations
@Override
runnerForClassback to summary
public Runner runnerForClass(Class<?> testClass) throws Throwable

Overrides org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass.

Doc from org.junit.runners.model.RunnerBuilder.runnerForClass.

Override to calculate the correct runner for a test class at runtime.

Annotations
@Override
Exceptions
Throwable:
if a runner cannot be constructed
org.junit.vintage.engine.discovery back to summary

private Class DefensiveAllDefaultPossibilitiesBuilder.DefensiveAnnotatedBuilder

extends AnnotatedBuilder
Class Inheritance

Customization of AnnotatedBuilder that ignores classes annotated with @RunWith(JUnitPlatform.class) to avoid infinite recursion.

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public @Nullable Runner
Inherited from org.junit.internal.builders.AnnotatedBuilder:
runnerForClass

Constructor Detail

DefensiveAnnotatedBuilderback to summary
pack-priv DefensiveAnnotatedBuilder(RunnerBuilder suiteBuilder)

Method Detail

buildRunnerback to summary
public @Nullable Runner buildRunner(Class<? extends Runner> runnerClass, Class<?> testClass) throws Exception

Overrides org.junit.internal.builders.AnnotatedBuilder.buildRunner.

Annotations
@Override
org.junit.vintage.engine.discovery back to summary

private Class DefensiveAllDefaultPossibilitiesBuilder.DefensiveJUnit4Builder

extends JUnit4Builder
Class Inheritance

Customization of JUnit4Builder that ignores classes that do not contain any test methods in order not to report errors for them.

Field Summary

Modifier and TypeField and Description
private static final Predicate<Method>

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private boolean
containsTestMethods(Class<?> testClass)

public @Nullable Runner
runnerForClass(Class<?> testClass)

Overrides org.junit.internal.builders.JUnit4Builder.runnerForClass.

Override to calculate the correct runner for a test class at runtime.

Field Detail

isPotentialJUnit4TestMethodback to summary
private static final Predicate<Method> isPotentialJUnit4TestMethod

Constructor Detail

DefensiveJUnit4Builderback to summary
private DefensiveJUnit4Builder()

Method Detail

containsTestMethodsback to summary
private boolean containsTestMethods(Class<?> testClass)
runnerForClassback to summary
public @Nullable Runner runnerForClass(Class<?> testClass) throws Throwable

Overrides org.junit.internal.builders.JUnit4Builder.runnerForClass.

Doc from org.junit.runners.model.RunnerBuilder.runnerForClass.

Override to calculate the correct runner for a test class at runtime.

Annotations
@Override
Exceptions
Throwable:
if a runner cannot be constructed
org.junit.vintage.engine.discovery back to summary

private Class DefensiveAllDefaultPossibilitiesBuilder.NullIgnoredBuilder

extends IgnoredBuilder
Class Inheritance

Customization of IgnoredBuilder that always returns null.
Since
5.1

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public @Nullable Runner
runnerForClass(Class<?> testClass)

Overrides org.junit.internal.builders.IgnoredBuilder.runnerForClass.

Override to calculate the correct runner for a test class at runtime.

Constructor Detail

NullIgnoredBuilderback to summary
private NullIgnoredBuilder()

Method Detail

runnerForClassback to summary
public @Nullable Runner runnerForClass(Class<?> testClass)

Overrides org.junit.internal.builders.IgnoredBuilder.runnerForClass.

Doc from org.junit.runners.model.RunnerBuilder.runnerForClass.

Override to calculate the correct runner for a test class at runtime.

Annotations
@Override