@Override public TestPrioritiser makeTestPrioritiser(final Properties props, final CodeSource code, final CoverageDatabase coverage) { return new DefaultTestPrioritiser(coverage); }
@Override public List<TestInfo> assignTests(MutationDetails mutation) { return prioritizeTests(mutation.getClassName(), pickTests(mutation)); }
@Test public void shouldAssignTestsForRelevantLineToGeneratedMutations() { final List<TestInfo> expected = makeTestInfos(0); when(this.coverage.getTestsForClassLine(any(ClassLine.class))).thenReturn( expected); final List<TestInfo> actual = this.testee.assignTests(makeMutation("foo")); assertEquals(expected, actual); }
@Test public void shouldPrioritiseTestsByExecutionTime() { final List<TestInfo> unorderedTests = makeTestInfos(10000, 100, 1000, 1); when(this.coverage.getTestsForClassLine(any(ClassLine.class))).thenReturn( unorderedTests); final List<TestInfo> actual = this.testee.assignTests(makeMutation("foo")); assertEquals(Arrays.asList(1, 100, 1000, 10000), FCollection.map(actual, toTime())); }
@Before public void setUp() { MockitoAnnotations.initMocks(this); this.testee = new DefaultTestPrioritiser(this.coverage); }
@Test public void shouldAssignAllTestsForClassWhenMutationInStaticInitialiser() { final List<TestInfo> expected = makeTestInfos(0); when(this.coverage.getTestsForClass(this.foo)).thenReturn(expected); final List<TestInfo> actual = this.testee .assignTests(makeMutation("<clinit>") .withPoisonStatus(PoisonStatus.IS_STATIC_INITIALIZER_CODE)); assertEquals(expected, actual); }
final MutationSource source = new MutationSource(mutationConfig, new DefaultTestPrioritiser( coverageData), bas, emptyIntercpetor);