diff options
author | Stephane Gamard <stephane.gamard@searchbox.com> | 2014-07-07 16:41:36 +0200 |
---|---|---|
committer | Stephane Gamard <stephane.gamard@searchbox.com> | 2014-07-07 16:41:36 +0200 |
commit | 62f864da77f43b056b98b78932b1d20860da26b4 (patch) | |
tree | 59361c70eb57bd91297d237dfa3e75393a5b5bc7 /sonar-server/src | |
parent | c4e562cb2fad74318b6a9bf733a0909263ff0271 (diff) | |
download | sonarqube-62f864da77f43b056b98b78932b1d20860da26b4.tar.gz sonarqube-62f864da77f43b056b98b78932b1d20860da26b4.zip |
SONAR-5007 - Fixed hasDebt filter in RuleIndex
Diffstat (limited to 'sonar-server/src')
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java | 18 | ||||
-rw-r--r-- | sonar-server/src/test/java/org/sonar/server/rule/index/RuleIndexMediumTest.java | 16 |
2 files changed, 22 insertions, 12 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java b/sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java index df2756104bc..3906b7f27fd 100644 --- a/sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java +++ b/sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java @@ -58,7 +58,6 @@ import org.sonar.server.search.QueryOptions; import org.sonar.server.search.Result; import javax.annotation.CheckForNull; - import java.io.IOException; import java.util.ArrayList; import java.util.Collection; @@ -233,16 +232,16 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> { if (debtCharacteristics != null && !debtCharacteristics.isEmpty()) { fb.must( FilterBuilders.orFilter( - // Match only when NOT NONE overriden + // Match only when NONE (overridden) FilterBuilders.andFilter( FilterBuilders.notFilter( FilterBuilders.termsFilter(RuleNormalizer.RuleField.SUB_CHARACTERISTIC.field(), DebtCharacteristic.NONE)), FilterBuilders.orFilter( FilterBuilders.termsFilter(RuleNormalizer.RuleField.SUB_CHARACTERISTIC.field(), debtCharacteristics), FilterBuilders.termsFilter(RuleNormalizer.RuleField.CHARACTERISTIC.field(), debtCharacteristics)) - ), + ), - // Match only when NOT NONE overriden + // Match only when NOT NONE (not overridden) FilterBuilders.andFilter( FilterBuilders.orFilter( FilterBuilders.termsFilter(RuleNormalizer.RuleField.SUB_CHARACTERISTIC.field(), ""), @@ -250,14 +249,19 @@ public class RuleIndex extends BaseIndex<Rule, RuleDto, RuleKey> { FilterBuilders.orFilter( FilterBuilders.termsFilter(RuleNormalizer.RuleField.DEFAULT_SUB_CHARACTERISTIC.field(), debtCharacteristics), FilterBuilders.termsFilter(RuleNormalizer.RuleField.DEFAULT_CHARACTERISTIC.field(), debtCharacteristics))) - ) - ); + ) + ); } // Debt char exist filter Boolean hasDebtCharacteristic = query.getHasDebtCharacteristic(); if (hasDebtCharacteristic != null && hasDebtCharacteristic) { - fb.must(FilterBuilders.existsFilter(RuleNormalizer.RuleField.SUB_CHARACTERISTIC.field())); + fb.mustNot( + FilterBuilders.termsFilter(RuleNormalizer.RuleField.SUB_CHARACTERISTIC.field(), DebtCharacteristic.NONE)) + .should( + FilterBuilders.existsFilter(RuleNormalizer.RuleField.SUB_CHARACTERISTIC.field())) + .should( + FilterBuilders.existsFilter(RuleNormalizer.RuleField.DEFAULT_SUB_CHARACTERISTIC.field())); } if (query.getAvailableSince() != null) { diff --git a/sonar-server/src/test/java/org/sonar/server/rule/index/RuleIndexMediumTest.java b/sonar-server/src/test/java/org/sonar/server/rule/index/RuleIndexMediumTest.java index f6fd64b2513..3b3950d6993 100644 --- a/sonar-server/src/test/java/org/sonar/server/rule/index/RuleIndexMediumTest.java +++ b/sonar-server/src/test/java/org/sonar/server/rule/index/RuleIndexMediumTest.java @@ -24,7 +24,10 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import org.apache.commons.lang.time.DateUtils; -import org.junit.*; +import org.junit.After; +import org.junit.Before; +import org.junit.ClassRule; +import org.junit.Test; import org.sonar.api.rule.RuleKey; import org.sonar.api.rule.RuleStatus; import org.sonar.api.rule.Severity; @@ -47,8 +50,12 @@ import org.sonar.server.search.Result; import org.sonar.server.tester.ServerTester; import javax.annotation.Nullable; - -import java.util.*; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Date; +import java.util.Iterator; +import java.util.List; import static com.google.common.collect.Lists.newArrayList; import static org.fest.assertions.Assertions.assertThat; @@ -284,8 +291,7 @@ public class RuleIndexMediumTest { } @Test - @Ignore("To be fixed") - public void search_by_has_debt_characteristic() { + public void search_by_has_debt_characteristic() throws InterruptedException { CharacteristicDto char1 = DebtTesting.newCharacteristicDto("c1") .setEnabled(true) .setName("char1"); |