package org.junit.internal.runners.model; 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.model.MultipleFailureException; public class EachTestNotifier { private final RunNotifier notifier; private final Description description; public EachTestNotifier(RunNotifier notifier, Description description) { this.notifier = notifier; this.description = description; } public void addFailure(Throwable targetException) { if (targetException instanceof MultipleFailureException) { addMultipleFailureException((MultipleFailureException) targetException); } else { notifier.fireTestFailure(new Failure(description, targetException)); } } private void addMultipleFailureException(MultipleFailureException mfe) { for (Throwable each : mfe.getFailures()) { addFailure(each); } } public void addFailedAssumption(AssumptionViolatedException e) { notifier.fireTestAssumptionFailed(new Failure(description, e)); } public void fireTestFinished() { notifier.fireTestFinished(description); } public void fireTestStarted() { notifier.fireTestStarted(description); } public void fireTestIgnored() { notifier.fireTestIgnored(description); } /** * Calls {@link RunNotifier#fireTestSuiteStarted(Description)}, passing the * {@link Description} that was passed to the {@code EachTestNotifier} constructor. * This should be called when a test suite is about to be started. * @see RunNotifier#fireTestSuiteStarted(Description) * @since 4.13 */ public void fireTestSuiteStarted() { notifier.fireTestSuiteStarted(description); } /** * Calls {@link RunNotifier#fireTestSuiteFinished(Description)}, passing the * {@link Description} that was passed to the {@code EachTestNotifier} constructor. * This should be called when a test suite has finished, whether the test suite succeeds * or fails. * @see RunNotifier#fireTestSuiteFinished(Description) * @since 4.13 */ public void fireTestSuiteFinished() { notifier.fireTestSuiteFinished(description); } }