]> source.dussan.org Git - sonarqube.git/commitdiff
fix issue searching rule by debt (with @julienlancelot)
authorStephane Gamard <stephane.gamard@searchbox.com>
Tue, 22 Apr 2014 07:46:20 +0000 (09:46 +0200)
committerStephane Gamard <stephane.gamard@searchbox.com>
Tue, 22 Apr 2014 07:46:20 +0000 (09:46 +0200)
sonar-server/src/main/java/org/sonar/server/rule/RuleRegistry.java
sonar-server/src/test/java/org/sonar/server/rule/RuleRegistryTest.java

index 36ac539e5b99aee5a8cca070b212456ee97fc0f3..07215e3c0d2966b8cf81731fb475c1a7654ba8a1 100644 (file)
@@ -416,8 +416,10 @@ public class RuleRegistry {
     }
 
     if (!query.debtCharacteristics().isEmpty()) {
-      mainFilter.must(FilterBuilders.queryFilter(
-        QueryBuilders.multiMatchQuery(query.debtCharacteristics(), RuleDocument.FIELD_CHARACTERISTIC_KEY, RuleDocument.FIELD_SUB_CHARACTERISTIC_KEY).operator(Operator.OR)));
+      BoolFilterBuilder debtFilter = boolFilter();
+      debtFilter.should(termsFilter(RuleDocument.FIELD_CHARACTERISTIC_KEY, query.debtCharacteristics()));
+      debtFilter.should(termsFilter(RuleDocument.FIELD_SUB_CHARACTERISTIC_KEY, query.debtCharacteristics()));
+      mainFilter.must(debtFilter);
     }
 
     if (query.hasDebtCharacteristic() != null) {
index 6120390982a8a9fa7d45d950710db54099d17742..f4a297a029f32a924436171a2c8bbec2a9351a53 100644 (file)
@@ -373,7 +373,7 @@ public class RuleRegistryTest {
   public void display_disabled_rule() {
     assertThat(registry.findIds(ImmutableMap.of("status", "BETA|REMOVED"))).containsOnly(2, 50);
   }
-  
+
   @Test
   public void find_rules_by_name_with_number_in_name() {
     registry.reindex(new RuleDto().setId(10).setRepositoryKey("repo").setRuleKey("rule1").setName("MyRule 1").setSeverity(Severity.MINOR));
@@ -381,7 +381,7 @@ public class RuleRegistryTest {
     System.out.println("MY RESULT: " + registry.find(RuleQuery.builder().searchQuery("MyRule 1").build()).results());
     assertThat(registry.find(RuleQuery.builder().searchQuery("MyRule 1").build()).results()).hasSize(1);
   }
-  
+
   @Test
   public void find_rule_by_key() {
     assertThat(registry.findByKey(RuleKey.of("unknown", "RuleWithParameters"))).isNull();
@@ -394,7 +394,7 @@ public class RuleRegistryTest {
     assertThat(rule.adminTags()).hasSize(1);
     assertThat(rule.systemTags()).hasSize(2);
   }
-  
+
   @Test
   public void filter_on_name_or_key() throws Exception {
     assertThat(registry.findIds(ImmutableMap.of("nameOrKey", "parameters"))).containsOnly(1);
@@ -485,8 +485,9 @@ public class RuleRegistryTest {
   public void find_rules_by_characteristics() {
     assertThat(registry.find(RuleQuery.builder().debtCharacteristics(newArrayList("MODULARITY")).build()).results()).hasSize(1);
     assertThat(registry.find(RuleQuery.builder().debtCharacteristics(newArrayList("REUSABILITY")).build()).results()).hasSize(1);
+    assertThat(registry.find(RuleQuery.builder().debtCharacteristics(newArrayList("PORTABILITY")).build()).results()).hasSize(1);
     // FIXME query has to be updated
-//    assertThat(registry.find(RuleQuery.builder().debtCharacteristics(newArrayList("MODULARITY", "PORTABILITY")).build()).results()).hasSize(2);
+    assertThat(registry.find(RuleQuery.builder().debtCharacteristics(newArrayList("MODULARITY", "PORTABILITY")).build()).results()).hasSize(2);
     assertThat(registry.find(RuleQuery.builder().debtCharacteristics(newArrayList("MODULARITY", "REUSABILITY")).build()).results()).hasSize(1);
     assertThat(registry.find(RuleQuery.builder().debtCharacteristics(newArrayList("unknown")).build()).results()).isEmpty();
   }