private Function<ClassName, Iterable<MutationDetails>> classToMutations() { return a -> MutationTestBuilder.this.mutationSource.createMutations(a); }
private Collection<MutationDetails> findMutants(ClassName clazz) { final MutationSource source = createSource(this.cbas); return source.createMutations(clazz); }
@Test public void shouldCreateNoUnitsWhenNoMutationsFound() { when(this.source.createMutations(any(ClassName.class))).thenReturn( Collections.<MutationDetails> emptyList()); assertTrue(this.testee.createMutationTestUnits( Arrays.asList(ClassName.fromString("foo"))).isEmpty()); }
@Test public void shouldReturnNoMuationsWhenNoneFound() { assertEquals(Collections.emptyList(), this.testee.createMutations(this.foo)); }
private void assertCreatesOneTestUnitForTwoMutations() { final MutationDetails mutation1 = createDetails("foo"); final MutationDetails mutation2 = createDetails("foo"); when(this.source.createMutations(any(ClassName.class))).thenReturn( Arrays.asList(mutation1, mutation2)); final List<MutationAnalysisUnit> actual = this.testee .createMutationTestUnits(Arrays.asList(ClassName.fromString("foo"))); assertEquals(1, actual.size()); }
@Test public void shouldOrderLargestUnitFirst() { final MutationDetails mutation1 = createDetails("foo"); final MutationDetails mutation2 = createDetails("bar"); final ClassName foo = ClassName.fromString("foo"); final ClassName bar = ClassName.fromString("bar"); when(this.source.createMutations(foo)).thenReturn(Arrays.asList(mutation1)); when(this.source.createMutations(bar)).thenReturn( Arrays.asList(mutation2, mutation2)); final List<MutationAnalysisUnit> actual = this.testee .createMutationTestUnits(Arrays.asList(foo, bar)); assertTrue(actual.get(0).priority() > actual.get(1).priority()); }
@Test public void shouldAssignTestsFromPrioritiserToMutant() { final List<TestInfo> expected = makeTestInfos(0); final List<MutationDetails> mutations = makeMutations("foo"); when(this.prioritiser.assignTests(any(MutationDetails.class))).thenReturn( expected); when(this.mutater.findMutations(any(ClassName.class))) .thenReturn(mutations); final MutationDetails actual = this.testee.createMutations(this.foo) .iterator().next(); assertEquals(expected, actual.getTestsInOrder()); }
@Test public void shouldCreateMultipleTestUnitsWhenUnitSizeIsLessThanNumberOfMutations() { makeTesteeWithUnitSizeOf(1); when(this.source.createMutations(any(ClassName.class))).thenReturn( Arrays.asList(createDetails("foo"), createDetails("foo"), createDetails("foo"))); final List<MutationAnalysisUnit> actual = this.testee .createMutationTestUnits(Arrays.asList(ClassName.fromString("foo"))); assertEquals(3, actual.size()); }