Browse Source

SONAR-5007 - Fixed registration errors and consolidated tests

tags/4.4-RC1
Stephane Gamard 10 years ago
parent
commit
b1c27d7b98

+ 14
- 3
sonar-server/src/main/java/org/sonar/server/rule/RegisterRules.java View 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;
}


+ 10
- 4
sonar-server/src/test/java/org/sonar/server/rule/RegisterRulesMediumTest.java View File

@@ -21,7 +21,11 @@
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);

Loading…
Cancel
Save