2020
2121package ch .devcon5 .sonar .plugins .mutationanalysis .metrics ;
2222
23- import static ch .devcon5 .sonar .plugins .mutationanalysis .metrics .MutationMetrics .MUTATIONS_COVERAGE_KEY ;
24- import static ch .devcon5 .sonar .plugins .mutationanalysis .metrics .MutationMetrics .MUTATIONS_DETECTED_KEY ;
25- import static ch .devcon5 .sonar .plugins .mutationanalysis .metrics .MutationMetrics .MUTATIONS_TOTAL_KEY ;
26- import static org .junit .Assert .assertEquals ;
27- import static org .junit .Assert .assertNull ;
28- import static org .junit .Assert .assertTrue ;
29-
30- import java .util .Arrays ;
31-
3223import ch .devcon5 .sonar .plugins .mutationanalysis .MutationAnalysisPlugin ;
3324import ch .devcon5 .sonar .plugins .mutationanalysis .testharness .MeasureComputerTestHarness ;
3425import org .junit .Before ;
3728import org .sonar .api .ce .measure .test .TestMeasureComputerContext ;
3829import org .sonar .api .ce .measure .test .TestMeasureComputerDefinitionContext ;
3930
31+ import java .util .Arrays ;
32+ import java .util .HashSet ;
33+
34+ import static ch .devcon5 .sonar .plugins .mutationanalysis .metrics .MutationMetrics .MUTATIONS_COVERAGE_KEY ;
35+ import static ch .devcon5 .sonar .plugins .mutationanalysis .metrics .MutationMetrics .MUTATIONS_DETECTED_KEY ;
36+ import static ch .devcon5 .sonar .plugins .mutationanalysis .metrics .MutationMetrics .MUTATIONS_SURVIVED_KEY ;
37+ import static ch .devcon5 .sonar .plugins .mutationanalysis .metrics .MutationMetrics .MUTATIONS_TEST_STRENGTH_KEY ;
38+ import static ch .devcon5 .sonar .plugins .mutationanalysis .metrics .MutationMetrics .MUTATIONS_TOTAL_KEY ;
39+ import static org .junit .Assert .assertEquals ;
40+ import static org .junit .Assert .assertNull ;
41+
4042public class MutationScoreComputerTest {
4143
4244 private MutationScoreComputer computer ;
@@ -58,8 +60,8 @@ public void define() {
5860
5961 final MeasureComputer .MeasureComputerDefinition def = computer .define (context );
6062
61- assertTrue (def .getInputMetrics (). containsAll (Arrays .asList (MUTATIONS_DETECTED_KEY , MUTATIONS_TOTAL_KEY )));
62- assertTrue (def .getOutputMetrics (). containsAll (Arrays .asList (MUTATIONS_COVERAGE_KEY )));
63+ assertEquals (def .getInputMetrics (), new HashSet <> (Arrays .asList (MUTATIONS_DETECTED_KEY , MUTATIONS_TOTAL_KEY , MUTATIONS_SURVIVED_KEY )));
64+ assertEquals (def .getOutputMetrics (), new HashSet <> (Arrays .asList (MUTATIONS_COVERAGE_KEY , MUTATIONS_TEST_STRENGTH_KEY )));
6365 }
6466
6567 @ Test
@@ -120,6 +122,21 @@ public void compute_3of5Mutations_to_60percentCoverage() {
120122
121123 }
122124
125+ @ Test
126+ public void compute_1of5MutationsKilled_to_20percentTestStrength () {
127+
128+ final TestMeasureComputerContext measureContext = harness .createMeasureContextForSourceFile ("compKey" );
129+
130+ measureContext .addInputMeasure (MUTATIONS_TOTAL_KEY , 5 );
131+ measureContext .addInputMeasure (MUTATIONS_SURVIVED_KEY , 4 );
132+ measureContext .addInputMeasure (MUTATIONS_DETECTED_KEY , 1 );
133+
134+ computer .compute (measureContext );
135+
136+ assertEquals (20.0 , measureContext .getMeasure (MUTATIONS_TEST_STRENGTH_KEY ).getDoubleValue (), 0.05 );
137+
138+ }
139+
123140 @ Test
124141 public void compute_NoCoveredElements_0percentCoverage () {
125142
@@ -130,6 +147,7 @@ public void compute_NoCoveredElements_0percentCoverage() {
130147 computer .compute (measureContext );
131148
132149 assertEquals (0.0 , measureContext .getMeasure (MUTATIONS_COVERAGE_KEY ).getDoubleValue (), 0.05 );
150+ assertEquals (0.0 , measureContext .getMeasure (MUTATIONS_TEST_STRENGTH_KEY ).getDoubleValue (), 0.05 );
133151
134152 }
135153
0 commit comments