package net.thucydides.junit.runners; import net.thucydides.samples.SampleParallelDataDrivenScenario; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; public class WhenSchedulingParallelTestJobs { @Mock Runnable testJob; @Mock Runnable testJob2; @Before public void initMocks() { MockitoAnnotations.initMocks(this); } @Test public void scheduling_a_parallel_test_run_should_add_it_to_the_scheduler_task_queue() { ParameterizedRunnerScheduler scheduler = new ParameterizedRunnerScheduler(SampleParallelDataDrivenScenario.class, 4); scheduler.schedule(testJob); assertThat(scheduler.getTaskQueue().size(), is(1)); } @Test public void scheduled_parallel_tests_should_all_be_processed_when_the_run_is_finished() { ParameterizedRunnerScheduler scheduler = new ParameterizedRunnerScheduler(SampleParallelDataDrivenScenario.class, 4); scheduler.schedule(testJob); scheduler.schedule(testJob2); assertThat(scheduler.getTaskQueue().size(), is(2)); scheduler.finished(); assertThat(scheduler.getTaskQueue().size(), is(0)); } }