package de.bechte.junit.runners.validation; import de.bechte.junit.runners.context.processing.ChildResolver; import de.bechte.junit.runners.context.processing.ContextResolver; import de.bechte.junit.runners.context.processing.MethodResolver; import org.junit.runners.model.TestClass; import java.util.List; /** * The {@link ChildrenCountValidator}s validate that the given {@link TestClass} contains at least 1 child. If there * is no child within the {@link TestClass} an error is reported in the {@link List} of errors. */ public enum ChildrenCountValidator implements TestClassValidator { TEST_METHODS(new MethodResolver(), "No tests found!"), CONTEXT_HIERARCHIES(new ContextResolver(), "No contexts found!"); private final ChildResolver<?> childResolver; private final String errorMessage; private ChildrenCountValidator(final ChildResolver<?> childResolver, final String errorMessage) { this.childResolver = childResolver; this.errorMessage = errorMessage; } public void validate(final TestClass testClass, final List<Throwable> errors) { if (childResolver.getChildren(testClass).isEmpty()) errors.add(new Exception(errorMessage)); } }