aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-dao
diff options
context:
space:
mode:
authorEric Hartmann <hartmann.eric@gmail.com>2018-10-19 10:50:07 +0200
committerSonarTech <sonartech@sonarsource.com>2018-10-25 20:21:01 +0200
commite14f55a7bb0ca1bfcc8d2a584146c54964ef0952 (patch)
treed762a3f3ab3b81b3fd6bf769d68ac27e738bbab8 /server/sonar-db-dao
parent069f74065ca3f4449dc2685fc73c000958d9cc75 (diff)
downloadsonarqube-e14f55a7bb0ca1bfcc8d2a584146c54964ef0952.tar.gz
sonarqube-e14f55a7bb0ca1bfcc8d2a584146c54964ef0952.zip
SONAR-11370 Add number of rules and active rules on Security Report
Diffstat (limited to 'server/sonar-db-dao')
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml2
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java35
2 files changed, 36 insertions, 1 deletions
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml
index 60d92465953..920726f8b0f 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml
@@ -303,7 +303,7 @@
rules r
<include refid="outerJoinRulesMetadata"/>
where
- r.status != 'REMOVED'
+ r.status != 'REMOVED' and r.is_external is false and r.is_template is false
and r.rule_type in <foreach collection="types" item="type" separator="," open="(" close=")">#{type, jdbcType=INTEGER}</foreach>
and r.language in <foreach collection="languages" item="language" separator="," open="(" close=")">#{language, jdbcType=VARCHAR}</foreach>
</select>
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java
index 946ca37331f..606d28e09a4 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java
@@ -19,6 +19,7 @@
*/
package org.sonar.db.rule;
+import com.hazelcast.map.impl.querycache.accumulator.Accumulator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -526,6 +527,40 @@ public class RuleDaoTest {
}
@Test
+ public void selectByTypeAndLanguages_ignores_external_rules() {
+ OrganizationDto organization = db.organizations().insert();
+
+ RuleDefinitionDto rule1 = db.rules().insert(
+ r -> r.setKey(RuleKey.of("java", "S001"))
+ .setConfigKey("S1")
+ .setType(RuleType.VULNERABILITY)
+ .setIsExternal(true)
+ .setLanguage("java"));
+ db.rules().insertOrUpdateMetadata(rule1, organization);
+
+ assertThat(underTest.selectByTypeAndLanguages(db.getSession(), organization.getUuid(), singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList("java")))
+ .extracting(RuleDto::getOrganizationUuid, RuleDto::getId, RuleDto::getLanguage, RuleDto::getType)
+ .isEmpty();
+ }
+
+ @Test
+ public void selectByTypeAndLanguages_ignores_template_rules() {
+ OrganizationDto organization = db.organizations().insert();
+
+ RuleDefinitionDto rule1 = db.rules().insert(
+ r -> r.setKey(RuleKey.of("java", "S001"))
+ .setConfigKey("S1")
+ .setType(RuleType.VULNERABILITY)
+ .setIsTemplate(true)
+ .setLanguage("java"));
+ db.rules().insertOrUpdateMetadata(rule1, organization);
+
+ assertThat(underTest.selectByTypeAndLanguages(db.getSession(), organization.getUuid(), singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList("java")))
+ .extracting(RuleDto::getOrganizationUuid, RuleDto::getId, RuleDto::getLanguage, RuleDto::getType)
+ .isEmpty();
+ }
+
+ @Test
public void select_by_query() {
OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule1 = db.rules().insert(r -> r.setKey(RuleKey.of("java", "S001")).setConfigKey("S1"));