2222import static ch .devcon5 .sonar .plugins .mutationanalysis .rules .MutationAnalysisRulesDefinition .MUTANT_RULES_PREFIX ;
2323import static org .junit .Assert .assertEquals ;
2424import static org .junit .Assert .assertNotNull ;
25+ import static org .junit .Assert .assertTrue ;
2526
2627import java .util .List ;
2728
@@ -57,7 +58,7 @@ public void testDefine() throws Exception {
5758 subject .define (context );
5859
5960 // assert
60- RulesDefinition .Repository repository = context .repository (MutationAnalysisRulesDefinition .REPOSITORY_KEY + ".java" );
61+ RulesDefinition .Repository repository = context .repository (MutationAnalysisRulesDefinition .REPOSITORY_KEY + ".java" );
6162 assertNotNull (repository );
6263
6364 assertEquals ("java" , repository .language ());
@@ -67,31 +68,50 @@ public void testDefine() throws Exception {
6768
6869 private void assertRules (final List <RulesDefinition .Rule > rules ) {
6970
70- assertEquals (27 , rules .size ());
71+ assertEquals (50 , rules .size ());
7172
7273 for (RulesDefinition .Rule rule : rules ) {
7374 assertNotNull (rule .debtRemediationFunction ());
7475 assertNotNull (rule .gapDescription ());
7576 assertNotNull (rule .htmlDescription ());
7677 }
7778
79+ //@ denotes a toString'ed object reference
80+ //"null " would be exactly 5 characters
81+ assertTrue (rules .stream ()
82+ .filter (r -> r .key ().startsWith (MUTANT_RULES_PREFIX ) && r .key ().endsWith ("CODE_SMELL" ))
83+ .allMatch (r -> r .name ().matches ("[^@]{6,}\\ (Code Smell\\ )" )));
84+
85+ assertTrue (rules .stream ()
86+ .filter (r -> r .key ().startsWith (MUTANT_RULES_PREFIX ) && !r .key ().endsWith ("CODE_SMELL" ))
87+ .noneMatch (r -> r .name ().matches ("[^@]{6,}\\ (Code Smell\\ )" )));
88+
7889 //all mutator rules
79- assertEquals (26 , rules .stream ()
80- .filter (rule -> rule .key ().startsWith (MUTANT_RULES_PREFIX ))
81- .filter (rule -> RuleType .BUG .equals (rule .type ()))
82- .count ());
83- assertEquals (17 , rules .stream ()
84- .filter (rule -> rule .status () == RuleStatus .READY )
85- .filter (RulesDefinition .Rule ::activatedByDefault )
86- .count ());
87- assertEquals (6 , rules .stream ()
88- .filter (rule -> rule .status () == RuleStatus .BETA )
89- .filter (rule -> !rule .activatedByDefault ())
90- .count ());
91- assertEquals (3 , rules .stream ()
92- .filter (rule -> rule .status () == RuleStatus .DEPRECATED )
93- .filter (rule -> !rule .activatedByDefault ())
94- .count ());
90+ assertEquals (26 ,
91+ rules .stream ()
92+ .filter (rule -> rule .key ().startsWith (MUTANT_RULES_PREFIX ))
93+ .filter (rule -> RuleType .BUG .equals (rule .type ()))
94+ .count ());
95+ assertEquals (24 ,
96+ rules .stream ()
97+ .filter (rule -> rule .key ().startsWith (MUTANT_RULES_PREFIX ))
98+ .filter (rule -> RuleType .CODE_SMELL .equals (rule .type ()))
99+ .count ());
100+ assertEquals (34 ,
101+ rules .stream ()
102+ .filter (rule -> rule .status () == RuleStatus .READY )
103+ .filter (RulesDefinition .Rule ::activatedByDefault )
104+ .count ());
105+ assertEquals (12 ,
106+ rules .stream ()
107+ .filter (rule -> rule .status () == RuleStatus .BETA )
108+ .filter (rule -> !rule .activatedByDefault ())
109+ .count ());
110+ assertEquals (3 ,
111+ rules .stream ()
112+ .filter (rule -> rule .status () == RuleStatus .DEPRECATED )
113+ .filter (rule -> !rule .activatedByDefault ())
114+ .count ());
95115 }
96116
97117}
0 commit comments