package de.bechte.junit.runners.context.processing; import de.bechte.junit.runners.context.description.ContextDescriber; import de.bechte.junit.stubs.ContextTestClassStub; import de.bechte.junit.stubs.EmptyTestClassStub; import de.bechte.junit.stubs.SimpleTestClassStub; import org.junit.Before; import org.junit.Test; import org.junit.runner.Description; import org.junit.runner.notification.Failure; import org.junit.runner.notification.RunNotifier; import org.mockito.Mock; import static org.mockito.Matchers.any; import static org.mockito.Mockito.*; import static org.mockito.MockitoAnnotations.initMocks; public class ContextExecutorTest { @Mock private ContextDescriber describer; @Mock private RunNotifier notifier; private ContextExecutor executor; @Before public void setUp() throws Exception { initMocks(this); executor = new ContextExecutor(describer); } @Test public void verifyNotificationsForExecutionOf_SimpleTestClass() throws Exception { executor.run(null, SimpleTestClassStub.class, notifier); verify(notifier, times(2)).fireTestStarted(any(Description.class)); verify(notifier, times(1)).fireTestFailure(any(Failure.class)); verify(notifier, times(2)).fireTestFinished(any(Description.class)); verifyNoMoreInteractions(notifier); } @Test public void verifyNotificationsForExecutionOf_ContextTestClass() throws Exception { executor.run(null, ContextTestClassStub.class, notifier); verify(notifier, times(3)).fireTestStarted(any(Description.class)); verify(notifier, times(1)).fireTestFailure(any(Failure.class)); verify(notifier, times(3)).fireTestFinished(any(Description.class)); verifyNoMoreInteractions(notifier); } @Test public void verifyNotificationsForExecutionOf_EmptyTestClass() throws Exception { executor.run(null, EmptyTestClassStub.class, notifier); verify(notifier, times(2)).fireTestFailure(any(Failure.class)); verifyNoMoreInteractions(notifier); } }