package de.bechte.junit.runners.context.description; import de.bechte.junit.runners.context.processing.ChildResolver; import org.junit.runner.Description; import org.junit.runners.model.FrameworkMethod; import org.junit.runners.model.TestClass; /** * The {@link ContextDescriber} is responsible for creating the {@link Description} for a context hierarchy. A context * hierarchy can contain tests and other context hierarchies. This class handles all tests and context hierarchies * found by the given resolvers. For the description of the tests the injected {@link Describer} is called. */ public class ContextDescriber extends SuiteDescriber { private final ChildResolver<FrameworkMethod> methodResolver; private final Describer<FrameworkMethod> methodDescriber; public ContextDescriber(final ChildResolver<Class<?>> contextResolver, final ChildResolver<FrameworkMethod> methodResolver, final Describer<FrameworkMethod> methodDescriber) { super(contextResolver); this.methodResolver = methodResolver; this.methodDescriber = methodDescriber; } @Override protected void addChildren(final Description description, final TestClass testClass) { for (final FrameworkMethod method : methodResolver.getChildren(testClass)) description.addChild(methodDescriber.describe(method)); super.addChildren(description, testClass); } }