aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-core/src/test
diff options
context:
space:
mode:
authorDejan Milisavljevic <dejan.milisavljevic@sonarsource.com>2024-10-11 10:27:08 +0200
committersonartech <sonartech@sonarsource.com>2024-10-16 20:03:01 +0000
commitb674c5e3184ceeab636035f733aae09269dbdc8c (patch)
treec435f055e612515034575c2f21e0bc2100c1aeab /sonar-core/src/test
parente2cb22069d25733459a1d058be1a7c1f3ca370ef (diff)
downloadsonarqube-b674c5e3184ceeab636035f733aae09269dbdc8c.tar.gz
sonarqube-b674c5e3184ceeab636035f733aae09269dbdc8c.zip
SONAR-23260 Publish impact changes to SonarQube IDE
Diffstat (limited to 'sonar-core/src/test')
-rw-r--r--sonar-core/src/test/java/org/sonar/core/util/rule/RuleChangeTest.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/sonar-core/src/test/java/org/sonar/core/util/rule/RuleChangeTest.java b/sonar-core/src/test/java/org/sonar/core/util/rule/RuleChangeTest.java
new file mode 100644
index 00000000000..a1f5c8119bc
--- /dev/null
+++ b/sonar-core/src/test/java/org/sonar/core/util/rule/RuleChangeTest.java
@@ -0,0 +1,63 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2024 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+package org.sonar.core.util.rule;
+
+import org.junit.jupiter.api.Test;
+import org.sonar.api.issue.impact.Severity;
+import org.sonar.api.issue.impact.SoftwareQuality;
+import org.sonar.core.util.ParamChange;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class RuleChangeTest {
+
+ @Test
+ void valuesAreStoredAndReturnedCorrectly() {
+ RuleChange ruleChange = new RuleChange();
+
+ ruleChange.setKey("key");
+ ruleChange.setTemplateKey("templateKey");
+ ruleChange.setLanguage("language");
+ ruleChange.setSeverity("severity");
+ ruleChange.setParams(new ParamChange[]{new ParamChange("paramKey", "paramValue")});
+ ruleChange.addImpact(SoftwareQuality.MAINTAINABILITY, Severity.HIGH);
+
+ assertThat(ruleChange).extracting(
+ RuleChange::getKey,
+ RuleChange::getTemplateKey,
+ RuleChange::getLanguage,
+ RuleChange::getSeverity)
+ .containsExactly(
+ "key",
+ "templateKey",
+ "language",
+ "severity");
+
+ assertThat(ruleChange.getParams()).hasSize(1);
+ assertThat(ruleChange.getParams()[0])
+ .extracting(ParamChange::getKey, ParamChange::getValue)
+ .containsExactly("paramKey", "paramValue");
+
+ assertThat(ruleChange.getImpacts()).hasSize(1);
+ assertThat(ruleChange.getImpacts().get(0))
+ .extracting(RuleChange.Impact::getSoftwareQuality, RuleChange.Impact::getSeverity)
+ .containsExactly(SoftwareQuality.MAINTAINABILITY, Severity.HIGH);
+ }
+}