use of org.sonar.db.rule.RuleDefinitionDto in project sonarqube by SonarSource.
the class RuleIndexTest method listTags_should_return_tags.
@Test
public void listTags_should_return_tags() {
RuleDefinitionDto rule1 = createRule(setSystemTags("sys1", "sys2"));
createRuleMetadata(rule1, setTags("tag1"));
RuleDefinitionDto rule2 = createRule(setSystemTags());
createRuleMetadata(rule2, setTags("tag2"));
index();
assertThat(underTest.listTags(null, 10)).containsOnly("tag1", "tag2", "sys1", "sys2");
}
use of org.sonar.db.rule.RuleDefinitionDto in project sonarqube by SonarSource.
the class RuleIndexTest method facet_by_activation_severity_is_ignored_when_profile_is_not_specified.
@Test
public void facet_by_activation_severity_is_ignored_when_profile_is_not_specified() {
RuleDefinitionDto rule = createJavaRule();
QProfileDto profile = createJavaProfile();
db.qualityProfiles().activateRule(profile, rule);
index();
RuleQuery query = newRuleQuery();
verifyNoFacet(query, RuleIndex.FACET_ACTIVE_SEVERITIES);
}
use of org.sonar.db.rule.RuleDefinitionDto in project sonarqube by SonarSource.
the class RuleIndexTest method global_facet_on_repositories_and_tags.
@Test
public void global_facet_on_repositories_and_tags() {
createRule(setRepositoryKey("php"), setSystemTags("sysTag"));
RuleDefinitionDto rule1 = createRule(setRepositoryKey("php"), setSystemTags());
createRuleMetadata(rule1, setTags("tag1"));
RuleDefinitionDto rule2 = createRule(setRepositoryKey("javascript"), setSystemTags());
createRuleMetadata(rule2, setTags("tag1", "tag2"));
index();
// should not have any facet!
RuleQuery query = new RuleQuery();
SearchIdResult result1 = underTest.search(query, new SearchOptions());
assertThat(result1.getFacets().getAll()).isEmpty();
// should not have any facet on non matching query!
SearchIdResult result2 = underTest.search(new RuleQuery().setQueryText("aeiou"), new SearchOptions().addFacets(singletonList("repositories")));
assertThat(result2.getFacets().getAll()).hasSize(1);
assertThat(result2.getFacets().getAll().get("repositories")).isEmpty();
// Repositories Facet is preset
SearchIdResult result3 = underTest.search(query, new SearchOptions().addFacets(asList("repositories", "tags")));
assertThat(result3.getFacets()).isNotNull();
// Verify the value of a given facet
Map<String, Long> repoFacets = result3.getFacets().get("repositories");
assertThat(repoFacets).containsOnly(entry("php", 2L), entry("javascript", 1L));
// Check that tag facet has both Tags and SystemTags values
Map<String, Long> tagFacets = result3.getFacets().get("tags");
assertThat(tagFacets).containsOnly(entry("tag1", 2L), entry("sysTag", 1L), entry("tag2", 1L));
// Check that there are no other facets
assertThat(result3.getFacets().getAll()).hasSize(2);
}
use of org.sonar.db.rule.RuleDefinitionDto in project sonarqube by SonarSource.
the class RuleIndexTest method search_by_any_of_repositories.
@Test
public void search_by_any_of_repositories() {
RuleDefinitionDto findbugs = createRule(setRepositoryKey("findbugs"), setRuleKey("S001"));
RuleDefinitionDto pmd = createRule(setRepositoryKey("pmd"), setRuleKey("S002"));
index();
RuleQuery query = new RuleQuery().setRepositories(asList("checkstyle", "pmd"));
SearchIdResult<String> results = underTest.search(query, new SearchOptions());
assertThat(results.getUuids()).containsExactly(pmd.getUuid());
// no results
query = new RuleQuery().setRepositories(singletonList("checkstyle"));
assertThat(underTest.search(query, new SearchOptions()).getUuids()).isEmpty();
// empty list => no filter
query = new RuleQuery().setRepositories(emptyList());
assertThat(underTest.search(query, new SearchOptions()).getUuids()).containsOnly(findbugs.getUuid(), pmd.getUuid());
}
use of org.sonar.db.rule.RuleDefinitionDto in project sonarqube by SonarSource.
the class RuleIndexTest method search_by_activation_and_severity.
@Test
public void search_by_activation_and_severity() {
RuleDefinitionDto major = createRule(setSeverity(MAJOR));
RuleDefinitionDto minor = createRule(setSeverity(MINOR));
RuleDefinitionDto info = createRule(setSeverity(INFO));
QProfileDto profile1 = createJavaProfile();
QProfileDto profile2 = createJavaProfile();
db.qualityProfiles().activateRule(profile1, major, ar -> ar.setSeverity(BLOCKER));
db.qualityProfiles().activateRule(profile2, major, ar -> ar.setSeverity(BLOCKER));
db.qualityProfiles().activateRule(profile1, minor, ar -> ar.setSeverity(CRITICAL));
index();
// count activation severities of all active rules
RuleQuery query = newRuleQuery().setActivation(true).setQProfile(profile1);
verifySearch(query, major, minor);
verifyFacet(query, RuleIndex.FACET_ACTIVE_SEVERITIES, entry(BLOCKER, 1L), entry(CRITICAL, 1L));
// check stickyness of active severity facet
query = newRuleQuery().setActivation(true).setQProfile(profile1).setActiveSeverities(singletonList(CRITICAL));
verifySearch(query, minor);
verifyFacet(query, RuleIndex.FACET_ACTIVE_SEVERITIES, entry(BLOCKER, 1L), entry(CRITICAL, 1L));
}
Aggregations