aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-core
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2013-12-02 10:01:43 +0100
committerJulien Lancelot <julien.lancelot@sonarsource.com>2013-12-02 10:01:43 +0100
commit4b3091c8008ba5a67d089593461e2c6b752a11dd (patch)
tree937563555d76ea284b03f48464d616f6d42d7d54 /sonar-core
parent587bdd4a8340bfef245e8cbfbf627a0f28d1c85d (diff)
downloadsonarqube-4b3091c8008ba5a67d089593461e2c6b752a11dd.tar.gz
sonarqube-4b3091c8008ba5a67d089593461e2c6b752a11dd.zip
SONAR-4897 Display a message when no requirement found
Diffstat (limited to 'sonar-core')
-rw-r--r--sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java14
-rw-r--r--sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDao.java5
-rw-r--r--sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java22
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();
+ }
}