import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.rule.RuleDefinitionDto;
-import org.sonar.db.rule.RuleDto;
-import org.sonar.db.rule.RuleMetadataDto;
import org.sonar.db.rule.RuleDto.Scope;
+import org.sonar.db.rule.RuleMetadataDto;
import org.sonar.server.es.EsTester;
import org.sonar.server.es.Facets;
import org.sonar.server.es.SearchIdResult;
import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;
import static com.google.common.collect.ImmutableSet.of;
-import static com.google.common.collect.Sets.newHashSet;
import static java.util.Arrays.asList;
import static java.util.Collections.emptyList;
import static java.util.Collections.emptySet;
import static org.sonar.api.rules.RuleType.CODE_SMELL;
import static org.sonar.api.rules.RuleType.VULNERABILITY;
import static org.sonar.db.rule.RuleTesting.setCreatedAt;
-import static org.sonar.db.rule.RuleTesting.setIsTemplate;
import static org.sonar.db.rule.RuleTesting.setIsExternal;
+import static org.sonar.db.rule.RuleTesting.setIsTemplate;
import static org.sonar.db.rule.RuleTesting.setLanguage;
import static org.sonar.db.rule.RuleTesting.setName;
import static org.sonar.db.rule.RuleTesting.setOrganization;
assertThat(results).containsOnly(rule.getId());
}
- @Test
- public void search_external_rule() {
-
- RuleDefinitionDto rule = new RuleDefinitionDto()
- .setId(123)
- .setRuleKey("S001")
- .setRepositoryKey("external_xoo")
- .setName("xoo:S001")
- .setSeverity(Severity.BLOCKER)
- .setStatus(RuleStatus.READY)
- .setIsTemplate(false)
- .setIsExternal(true)
- .setType(RuleType.BUG)
- .setScope(Scope.ALL)
- .setCreatedAt(1500000000000L)
- .setUpdatedAt(1600000000000L);
-
- db.rules().insert(rule);
- index();
-
- assertThat(underTest.search(new RuleQuery().setQueryText("external_xoo:S001"), new SearchOptions()).getIds())
- .containsExactlyInAnyOrder(rule.getId());
- }
-
@Test
public void search_content_by_query() {
RuleDefinitionDto rule1 = createJavaRule(rule -> rule.setRuleKey("123").setDescription("My great rule CWE-123 which makes your code 1000 times better!"));
RuleDefinitionDto ruleIsExternal = createRule(setIsExternal(true));
index();
- // find all
- RuleQuery query = new RuleQuery();
- SearchIdResult<Integer> results = underTest.search(query, new SearchOptions());
- assertThat(results.getIds()).hasSize(2);
-
// Only external
- query = new RuleQuery().setIncludeExternal(true);
- results = underTest.search(query, new SearchOptions());
- assertThat(results.getIds()).containsOnly(ruleIsExternal.getId());
+ RuleQuery query = new RuleQuery().setIncludeExternal(true);
+ SearchIdResult<Integer> results = underTest.search(query, new SearchOptions());
+ assertThat(results.getIds()).containsOnly(ruleIsExternal.getId(), ruleIsNotExternal.getId());
// Only not external
query = new RuleQuery().setIncludeExternal(false);
results = underTest.search(query, new SearchOptions());
assertThat(results.getIds()).containsOnly(ruleIsNotExternal.getId());
-
- // null => no filter
- query = new RuleQuery().setIncludeExternal(null);
- results = underTest.search(query, new SearchOptions());
- assertThat(results.getIds()).containsOnly(ruleIsExternal.getId(), ruleIsNotExternal.getId());
}
@Test
assertThat(result.isAscendingSort()).isTrue();
assertThat(result.getAvailableSinceLong()).isNull();
assertThat(result.getInheritance()).isNull();
- assertThat(result.includeExternal()).isNull();
+ assertThat(result.includeExternal()).isFalse();
assertThat(result.isTemplate()).isNull();
assertThat(result.getLanguages()).isNull();
assertThat(result.getQueryText()).isNull();
ASCENDING, "false");
assertResult(result, qualityProfile, compareToQualityProfile);
- assertThat(result.includeExternal()).isNull();
+ assertThat(result.includeExternal()).isFalse();
}
private void assertResult(RuleQuery result, QProfileDto qualityProfile, QProfileDto compareToQualityProfile) {