]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6644 do not compute issue debt if SQALE characteristic is not set
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Sun, 12 Jul 2015 13:31:55 +0000 (15:31 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Sun, 12 Jul 2015 13:31:55 +0000 (15:31 +0200)
server/sonar-server/src/main/java/org/sonar/server/computation/issue/DebtCalculator.java
server/sonar-server/src/main/java/org/sonar/server/computation/issue/NewDebtCalculator.java
server/sonar-server/src/test/java/org/sonar/server/computation/issue/DebtCalculatorTest.java

index 0a7e5274809983e74e0c740685f4031a897e902e..6abdabd9d1648d6c1e44b93a48a0924c5809e11d 100644 (file)
@@ -42,7 +42,7 @@ public class DebtCalculator {
   public Duration calculate(DefaultIssue issue) {
     Rule rule = ruleRepository.getByKey(issue.ruleKey());
     DebtRemediationFunction fn = rule.getRemediationFunction();
-    if (fn != null) {
+    if (fn != null && rule.getSubCharacteristicId() != null) {
       verifyEffortToFix(issue, fn);
 
       Duration debt = Duration.create(0);
index d67bc99e04e932e95fb0f8d32a7cf531ee4589c7..428d3bb1900f8981a37f1267af841108d2548bc4 100644 (file)
@@ -49,7 +49,6 @@ import static com.google.common.collect.FluentIterable.from;
 public class NewDebtCalculator {
 
   public long calculate(DefaultIssue issue, Collection<IssueChangeDto> debtChangelog, Period period) {
-
     if (issue.creationDate().getTime() > period.getSnapshotDate() + 1000L) {
       return Objects.firstNonNull(issue.debtInMinutes(), 0L);
     }
index d596d765bb8ed777674955de6186c717e66eade0..078e56a4eb149768a4cb7ceb74b0386470dc455f 100644 (file)
@@ -33,7 +33,7 @@ import static org.mockito.Mockito.mock;
 
 public class DebtCalculatorTest {
 
-  DumbRule rule = new DumbRule(RuleTesting.XOO_X1);
+  DumbRule rule = new DumbRule(RuleTesting.XOO_X1).setSubCharacteristicId(123);
   DefaultIssue issue = new DefaultIssue().setRuleKey(rule.getKey());
 
   @org.junit.Rule
@@ -48,6 +48,16 @@ public class DebtCalculatorTest {
     assertThat(underTest.calculate(issue)).isNull();
   }
 
+  @Test
+  public void no_debt_if_no_sqale_characteristic() {
+    rule.setSubCharacteristicId(null);
+    rule.setFunction(new DefaultDebtRemediationFunction(DebtRemediationFunction.Type.LINEAR, "2min", null));
+
+    DefaultIssue issue = new DefaultIssue().setRuleKey(rule.getKey());
+
+    assertThat(underTest.calculate(issue)).isNull();
+  }
+
   @Test
   public void default_effort_to_fix_is_one_for_linear_function() {
     int coefficient = 2;