]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5007 - Fixed registration errors and consolidated tests
authorStephane Gamard <stephane.gamard@searchbox.com>
Mon, 23 Jun 2014 16:03:02 +0000 (18:03 +0200)
committerStephane Gamard <stephane.gamard@searchbox.com>
Mon, 23 Jun 2014 16:03:07 +0000 (18:03 +0200)
sonar-server/src/main/java/org/sonar/server/rule/RegisterRules.java
sonar-server/src/test/java/org/sonar/server/rule/RegisterRulesMediumTest.java

index 5ddb76aabca93131753441b2bebd519728cad3c2..351a30f4766d791bfbab11864bd7e6df5109fada 100644 (file)
@@ -46,8 +46,12 @@ import org.sonar.server.startup.RegisterDebtModel;
 
 import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
-
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 import static com.google.common.collect.Lists.newArrayList;
 
@@ -349,9 +353,12 @@ public class RegisterRules implements Startable {
     List<RuleDto> removedRules = newArrayList();
     for (RuleDto ruleDto : ruleDtos) {
       boolean toBeRemoved = true;
-      // Update custom rules from template
+
+      // 0. Case Rule is a Custom rule
       if (ruleDto.getTemplateId() != null) {
         RuleDto template = dbClient.ruleDao().getTemplate(ruleDto, session);
+
+        // 0.1 CustomRule has an Active Template
         if (template != null && RuleStatus.REMOVED != template.getStatus()) {
           if (updateCustomRuleFromTemplateRule(ruleDto, template)) {
             dbClient.ruleDao().update(session, ruleDto);
@@ -408,6 +415,10 @@ public class RegisterRules implements Startable {
       customRule.setEffortToFixDescription(templateRule.getEffortToFixDescription());
       changed = true;
     }
+    if (customRule.getStatus() != templateRule.getStatus()) {
+      customRule.setStatus(templateRule.getStatus());
+      changed = true;
+    }
     return changed;
   }
 
index 84bdaddd00b0f97ed42c5363bf8541f5cb85a6af..404e78f8e7dfdf8371d92e2f4c8b4e5e46e0479e 100644 (file)
 package org.sonar.server.rule;
 
 import com.google.common.collect.ImmutableMap;
-import org.junit.*;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Ignore;
+import org.junit.Test;
 import org.sonar.api.rule.RuleKey;
 import org.sonar.api.rule.RuleStatus;
 import org.sonar.api.rule.Severity;
@@ -176,13 +180,13 @@ public class RegisterRulesMediumTest {
   }
 
   @Test
-  @Ignore("To be fixed")
   public void not_update_rule_if_no_change() throws Exception {
     // Store updated at date
     Date updatedAt = index.getByKey(RuleTesting.XOO_X1).updatedAt();
 
     // Re-execute startup tasks
     tester.get(Platform.class).executeStartupTasks();
+    dbSession.clearCache();
 
     // Verify rule has not been updated
     Rule customRuleReloaded = index.getByKey(RuleTesting.XOO_X1);
@@ -202,7 +206,6 @@ public class RegisterRulesMediumTest {
   }
 
   @Test
-  @Ignore("To be fixed")
   public void reactivate_disabled_rules() {
     verifyRulesInDb();
 
@@ -212,6 +215,7 @@ public class RegisterRulesMediumTest {
 
     RuleDto rule = db.ruleDao().getByKey(dbSession, RuleTesting.XOO_X1);
     assertThat(rule.getStatus()).isEqualTo(RuleStatus.REMOVED);
+    dbSession.clearCache();
 
     // Reactivate plugin X1
     rulesDefinition.includeX1 = true;
@@ -482,7 +486,6 @@ public class RegisterRulesMediumTest {
   }
 
   @Test
-  @Ignore("To be fixed")
   public void reactivate_disabled_custom_rules() {
     Rule templateRule = index.getByKey(RuleKey.of("xoo", "template1"));
 
@@ -499,6 +502,8 @@ public class RegisterRulesMediumTest {
     // Restart without template rule
     rulesDefinition.includeTemplate1 = false;
     tester.get(Platform.class).executeStartupTasks();
+    dbSession.clearCache();
+
 
     // Verify custom rule is removed
     assertThat(index.getByKey(customRuleKey).status()).isEqualTo(RuleStatus.REMOVED);
@@ -506,6 +511,7 @@ public class RegisterRulesMediumTest {
     // Restart with template rule
     rulesDefinition.includeTemplate1 = true;
     tester.get(Platform.class).executeStartupTasks();
+    dbSession.clearCache();
 
     // Verify custom rule is reactivate
     assertThat(index.getByKey(customRuleKey).status()).isEqualTo(RuleStatus.READY);