summaryrefslogtreecommitdiffstats
path: root/sonar-core/src
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2014-02-10 08:35:43 +0100
committerJulien Lancelot <julien.lancelot@sonarsource.com>2014-02-10 08:35:43 +0100
commit611806426d43e22650878b5f50148e01d475a9b2 (patch)
tree596cbd1c8cf360461daec7b51b1fddb764cedaf5 /sonar-core/src
parent0a9c84b96d2887aed45990ffca7be680170c462a (diff)
downloadsonarqube-611806426d43e22650878b5f50148e01d475a9b2.tar.gz
sonarqube-611806426d43e22650878b5f50148e01d475a9b2.zip
Fix quality flaws
Diffstat (limited to 'sonar-core/src')
-rw-r--r--sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java4
-rw-r--r--sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java14
2 files changed, 18 insertions, 0 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java b/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java
index 3bb7b5bae7d..78d3157cd24 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java
+++ b/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java
@@ -20,6 +20,7 @@
package org.sonar.core.technicaldebt;
+
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rules.Rule;
import org.sonar.api.rules.RuleFinder;
@@ -73,6 +74,9 @@ public class DefaultTechnicalDebtManager implements TechnicalDebtManager {
CharacteristicDto requirementDto = dao.selectByRuleId(ruleId);
if (requirementDto != null) {
Rule rule = ruleFinder.findById(ruleId);
+ if (rule == null) {
+ throw new IllegalArgumentException(String.format("Rule with id '%s' do not exists.", ruleId));
+ }
return toCharacteristic(requirementDto, RuleKey.of(rule.getRepositoryKey(), rule.getKey()));
}
return null;
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java b/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java
index 7ac3d435309..a69517c7c99 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java
@@ -37,6 +37,7 @@ import java.util.List;
import static com.google.common.collect.Lists.newArrayList;
import static org.fest.assertions.Assertions.assertThat;
+import static org.fest.assertions.Fail.fail;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
@@ -163,4 +164,17 @@ public class DefaultTechnicalDebtManagerTest {
assertThat(finder.findRequirementByRuleId(1)).isNull();
}
+
+ @Test
+ public void fail_to_find_requirement_by_rule_id_if_unknown_rule_id() throws Exception {
+ when(dao.selectByRuleId(1)).thenReturn(
+ new CharacteristicDto().setId(3).setRuleId(10).setParentId(2).setRootId(1).setFunction("linear").setFactorValue(30.0).setFactorUnit("mn"));
+ when(ruleFinder.findById(1)).thenReturn(null);
+ try {
+ finder.findRequirementByRuleId(1);
+ fail();
+ } catch (Exception e) {
+ assertThat(e).isInstanceOf(IllegalArgumentException.class);
+ }
+ }
}