diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-02-10 08:35:43 +0100 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-02-10 08:35:43 +0100 |
commit | 611806426d43e22650878b5f50148e01d475a9b2 (patch) | |
tree | 596cbd1c8cf360461daec7b51b1fddb764cedaf5 /sonar-core/src | |
parent | 0a9c84b96d2887aed45990ffca7be680170c462a (diff) | |
download | sonarqube-611806426d43e22650878b5f50148e01d475a9b2.tar.gz sonarqube-611806426d43e22650878b5f50148e01d475a9b2.zip |
Fix quality flaws
Diffstat (limited to 'sonar-core/src')
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); + } + } } |