diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2013-12-02 10:01:43 +0100 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@sonarsource.com> | 2013-12-02 10:01:43 +0100 |
commit | 4b3091c8008ba5a67d089593461e2c6b752a11dd (patch) | |
tree | 937563555d76ea284b03f48464d616f6d42d7d54 /sonar-core | |
parent | 587bdd4a8340bfef245e8cbfbf627a0f28d1c85d (diff) | |
download | sonarqube-4b3091c8008ba5a67d089593461e2c6b752a11dd.tar.gz sonarqube-4b3091c8008ba5a67d089593461e2c6b752a11dd.zip |
SONAR-4897 Display a message when no requirement found
Diffstat (limited to 'sonar-core')
3 files changed, 39 insertions, 2 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 7a75aa76a97..6f0a532ee07 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 @@ -29,6 +29,7 @@ import org.sonar.api.utils.WorkUnit; import org.sonar.core.technicaldebt.db.CharacteristicDao; import org.sonar.core.technicaldebt.db.CharacteristicDto; +import javax.annotation.CheckForNull; import javax.annotation.Nullable; import java.util.List; @@ -55,13 +56,22 @@ public class DefaultTechnicalDebtManager implements TechnicalDebtManager { return characteristics; } + @CheckForNull public Characteristic findCharacteristicById(Integer id) { - return toCharacteristic(dao.selectById(id), null); + CharacteristicDto dto = dao.selectById(id); + if (dto != null) { + return toCharacteristic(dao.selectById(id), null); + } + return null; } + @CheckForNull public Characteristic findRequirementByRule(Rule rule) { CharacteristicDto requirementDto = dao.selectByRuleId(rule.getId()); - return toCharacteristic(requirementDto, RuleKey.of(rule.getRepositoryKey(), rule.getKey())); + if (requirementDto != null) { + return toCharacteristic(requirementDto, RuleKey.of(rule.getRepositoryKey(), rule.getKey())); + } + return null; } private static Characteristic toCharacteristic(CharacteristicDto dto, @Nullable RuleKey ruleKey) { diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDao.java b/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDao.java index 03e58946de8..fbac58d237c 100644 --- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDao.java +++ b/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDao.java @@ -25,6 +25,8 @@ import org.sonar.api.BatchComponent; import org.sonar.api.ServerComponent; import org.sonar.core.persistence.MyBatis; +import javax.annotation.CheckForNull; + import java.util.List; public class CharacteristicDao implements BatchComponent, ServerComponent { @@ -61,6 +63,7 @@ public class CharacteristicDao implements BatchComponent, ServerComponent { } } + @CheckForNull public CharacteristicDto selectByKey(String key) { SqlSession session = mybatis.openSession(); CharacteristicMapper mapper = session.getMapper(CharacteristicMapper.class); @@ -71,6 +74,7 @@ public class CharacteristicDao implements BatchComponent, ServerComponent { } } + @CheckForNull public CharacteristicDto selectById(Integer id) { SqlSession session = mybatis.openSession(); CharacteristicMapper mapper = session.getMapper(CharacteristicMapper.class); @@ -81,6 +85,7 @@ public class CharacteristicDao implements BatchComponent, ServerComponent { } } + @CheckForNull public CharacteristicDto selectByRuleId(Integer ruleId) { SqlSession session = mybatis.openSession(); CharacteristicMapper mapper = session.getMapper(CharacteristicMapper.class); 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 4adfd392eeb..a20cb142ee9 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 @@ -89,6 +89,17 @@ public class DefaultTechnicalDebtManagerTest { } @Test + public void not_find_requirement() throws Exception { + Rule rule = Rule.create("repo", "key"); + rule.setId(1); + + when(dao.selectByRuleId(rule.getId())).thenReturn(null); + + Characteristic result = finder.findRequirementByRule(rule); + assertThat(result).isNull(); + } + + @Test public void find_characteristic() throws Exception { Rule rule = Rule.create("repo", "key"); rule.setId(1); @@ -104,4 +115,15 @@ public class DefaultTechnicalDebtManagerTest { assertThat(result.key()).isEqualTo("COMPILER_RELATED_PORTABILITY"); assertThat(result.name()).isEqualTo("Compiler"); } + + @Test + public void not_find_characteristic() throws Exception { + Rule rule = Rule.create("repo", "key"); + rule.setId(1); + + when(dao.selectById(rule.getId())).thenReturn(null); + + Characteristic result = finder.findCharacteristicById(2); + assertThat(result).isNull(); + } } |