aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/sonar-xoo-plugin
diff options
context:
space:
mode:
authorBenjamin Campomenosi <109955405+benjamin-campomenosi-sonarsource@users.noreply.github.com>2023-04-21 12:17:10 +0200
committersonartech <sonartech@sonarsource.com>2023-04-24 20:04:24 +0000
commita755196f047cc2f36a9612134d4f1c3482ccb4c5 (patch)
tree19a44b125a2772da241a9d04a7cd3a25444be299 /plugins/sonar-xoo-plugin
parent5555b600ec9cdc2256c4e47b36df188d7703c1ca (diff)
downloadsonarqube-a755196f047cc2f36a9612134d4f1c3482ccb4c5.tar.gz
sonarqube-a755196f047cc2f36a9612134d4f1c3482ccb4c5.zip
SONAR-19050 Update xoo-plugin : use new rule characteristics in some issues
Diffstat (limited to 'plugins/sonar-xoo-plugin')
-rw-r--r--plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java13
-rw-r--r--plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java9
2 files changed, 17 insertions, 5 deletions
diff --git a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java
index c818dadcbc9..058a8154414 100644
--- a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java
+++ b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java
@@ -22,6 +22,7 @@ package org.sonar.xoo.rule;
import javax.annotation.Nullable;
import org.sonar.api.SonarRuntime;
import org.sonar.api.rule.RuleScope;
+import org.sonar.api.rules.RuleCharacteristic;
import org.sonar.api.rules.RuleType;
import org.sonar.api.server.rule.RuleDescriptionSection;
import org.sonar.api.server.rule.RuleParamType;
@@ -145,7 +146,7 @@ public class XooRulesDefinition implements RulesDefinition {
NewRule oneBugIssuePerTestLine = repo.createRule(OneBugIssuePerTestLineSensor.RULE_KEY).setName("One Bug Issue Per Test Line")
.setScope(RuleScope.TEST)
- .setType(RuleType.BUG);
+ .setType(RuleType.BUG).setCharacteristic(RuleCharacteristic.COMPLIANT);
addAllDescriptionSections(oneBugIssuePerTestLine, "Generate a bug issue on each line of a test file. It requires the metric \"lines\".");
oneBugIssuePerTestLine
@@ -188,10 +189,10 @@ public class XooRulesDefinition implements RulesDefinition {
NewRule hotspotWithRangeAndMultipleLocations = repo.createRule(MultilineHotspotSensor.RULE_KEY)
.setName("Creates hotspots with ranges/multiple locations")
- .setType(RuleType.SECURITY_HOTSPOT);
+ .setType(RuleType.SECURITY_HOTSPOT)
+ .setCharacteristic(RuleCharacteristic.PORTABLE);
addAllDescriptionSections(hotspotWithRangeAndMultipleLocations, "Hotspot with range and multiple locations");
-
NewRule issueOnEachFileWithExtUnknown = repo.createRule(OneIssuePerUnknownFileSensor.RULE_KEY).setName("Creates issues on each file with extension 'unknown'");
addAllDescriptionSections(issueOnEachFileWithExtUnknown, "This issue is generated on each file with extenstion 'unknown'");
@@ -202,13 +203,14 @@ public class XooRulesDefinition implements RulesDefinition {
addAllDescriptionSections(oneBugIssuePerLine, "Generate a bug issue on each line of a file. It requires the metric \"lines\".");
NewRule oneCodeSmellIssuePerLine = repo.createRule(OneCodeSmellIssuePerLineSensor.RULE_KEY).setName("One Code Smell Issue Per Line")
- .setType(RuleType.CODE_SMELL);
+ .setType(RuleType.CODE_SMELL)
+ .setCharacteristic(RuleCharacteristic.STRUCTURED);
oneCodeSmellIssuePerLine
.setDebtRemediationFunction(oneCodeSmellIssuePerLine.debtRemediationFunctions().linear("9min"));
addAllDescriptionSections(oneCodeSmellIssuePerLine, "Generate a code smell issue on each line of a file. It requires the metric \"lines\".");
NewRule oneVulnerabilityIssuePerModule = repo.createRule(OneVulnerabilityIssuePerModuleSensor.RULE_KEY).setName("One Vulnerability Issue Per Module")
- .setType(RuleType.VULNERABILITY);
+ .setType(RuleType.VULNERABILITY).setCharacteristic(RuleCharacteristic.ROBUST);
addAllDescriptionSections(oneVulnerabilityIssuePerModule, "Generate an issue on each module");
oneVulnerabilityIssuePerModule
@@ -274,6 +276,7 @@ public class XooRulesDefinition implements RulesDefinition {
NewRule hotspotWithSingleContext = repo.createRule(HotspotWithSingleContextSensor.RULE_KEY)
.setName("Find security hotspots, how_to_fix with single context")
.setType(RuleType.SECURITY_HOTSPOT)
+ .setCharacteristic(RuleCharacteristic.SECURE)
.setActivatedByDefault(false)
.addDescriptionSection(howToFixSectionWithContext("single_context"));
addDescriptionSectionsWithoutContexts(hotspotWithSingleContext, "Search for Security Hotspots with single context in Xoo files");
diff --git a/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java
index 8d3ece2a71c..d851fb4f26f 100644
--- a/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java
+++ b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java
@@ -25,6 +25,7 @@ import org.sonar.api.SonarEdition;
import org.sonar.api.SonarQubeSide;
import org.sonar.api.impl.server.RulesDefinitionContext;
import org.sonar.api.internal.SonarRuntimeImpl;
+import org.sonar.api.rules.RuleCharacteristic;
import org.sonar.api.server.debt.DebtRemediationFunction;
import org.sonar.api.server.rule.RulesDefinition;
import org.sonar.api.utils.Version;
@@ -55,6 +56,7 @@ public class XooRulesDefinitionTest {
assertThat(rule.debtRemediationFunction().gapMultiplier()).isEqualTo("1min");
assertThat(rule.debtRemediationFunction().baseEffort()).isNull();
assertThat(rule.gapDescription()).isNotEmpty();
+ assertThat(rule.characteristic()).isNull();
assertThat(rule.ruleDescriptionSections()).isNotEmpty();
assertThat(rule.ruleDescriptionSections().stream().anyMatch(rds -> rds.getContext().isPresent())).isTrue();
}
@@ -114,6 +116,13 @@ public class XooRulesDefinitionTest {
assertThat(repo.rules()).hasSize(2);
}
+ @Test
+ public void define_xoo_rule_with_characteristic() {
+ RulesDefinition.Repository repo = context.repository("xoo");
+ RulesDefinition.Rule oneCodeSmellIssuePerLine = repo.rule("OneCodeSmellIssuePerLine");
+ assertThat(oneCodeSmellIssuePerLine.characteristic()).isEqualTo(RuleCharacteristic.STRUCTURED);
+ }
+
private RulesDefinition.Repository getRepository() {
RulesDefinition.Repository repo = context.repository("xoo");
assertThat(repo).isNotNull();