]> source.dussan.org Git - sonarqube.git/commitdiff
Fix some quality flaws
authorJulien Lancelot <julien.lancelot@gmail.com>
Tue, 24 Dec 2013 07:44:19 +0000 (08:44 +0100)
committerJulien Lancelot <julien.lancelot@gmail.com>
Tue, 24 Dec 2013 07:44:19 +0000 (08:44 +0100)
sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfiles.java
sonar-server/src/main/webapp/WEB-INF/app/controllers/new_rules_configuration_controller.rb
sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfilesTest.java

index 293c8ed8321841794349695010fdeff3172227fb..d857fd283b8b44833b48b261ff64ac3191272361 100644 (file)
@@ -241,7 +241,12 @@ public class QProfiles implements ServerComponent {
    */
   @CheckForNull
   public ActiveRuleParamDto activeRuleParam(QProfileRule rule, String key) {
-    return findActiveRuleParam(rule.activeRuleId(), key);
+    Integer activeRuleId = rule.activeRuleId();
+    if (activeRuleId == null) {
+      throw new IllegalArgumentException("Active rule id can't be null");
+    }
+    return findActiveRuleParam(activeRuleId, key);
+
   }
 
   public ActiveRuleChanged updateActiveRuleParam(int profileId, int activeRuleId, String key, @Nullable String value) {
@@ -298,8 +303,7 @@ public class QProfiles implements ServerComponent {
     return rules.getFromRuleId(ruleId);
   }
 
-  public QProfileRule newRule(int profileId, int ruleId, @Nullable String name, @Nullable String severity, @Nullable String description, Map<String, String> paramsByKey) {
-    QualityProfileDto qualityProfile = findNotNull(profileId);
+  public QProfileRule newRule(int ruleId, @Nullable String name, @Nullable String severity, @Nullable String description, Map<String, String> paramsByKey) {
     RuleDto rule = findRuleNotNull(ruleId);
     validateNewRule(name, severity, description);
     RuleDto newRule = operations.createRule(rule, name, severity, description, paramsByKey, UserSession.get());
index 907395eb13e97e57fba3126a965b5e42afa11c54..9d97816221c9142cf3ac2cea558d5156717ac834 100644 (file)
@@ -164,8 +164,9 @@ class NewRulesConfigurationController < ApplicationController
     rule_id = params[:rule_id].to_i
     new_rule = nil
     call_backend do
-      new_rule = Internal.quality_profiles.newRule(profile_id, rule_id, params[:rule][:name], params[:rule][:priority], params[:rule][:description], params[:rule_param])
+      new_rule = Internal.quality_profiles.newRule(rule_id, params[:rule][:name], params[:rule][:priority], params[:rule][:description], params[:rule_param])
     end
+
     if new_rule
       redirect_to :action => 'index', :id => profile_id, :searchtext => "\"#{new_rule.name()}\"", :rule_activation => 'INACTIVE', "plugins[]" => new_rule.repositoryKey()
     else
index 3e54a9155f17624735387ae3f63ae259d3cf2102..36ef43327f74487018854b2ec0633ea7d8709991 100644 (file)
@@ -538,8 +538,6 @@ public class QProfilesTest {
 
   @Test
   public void create_new_rule() throws Exception {
-    QualityProfileDto profile = new QualityProfileDto().setId(1).setName("My profile").setLanguage("java");
-    when(qualityProfileDao.selectById(1)).thenReturn(profile);
     RuleDto rule = new RuleDto().setId(10).setRepositoryKey("squid").setRuleKey("AvoidCycle");
     when(ruleDao.selectById(10)).thenReturn(rule);
 
@@ -547,7 +545,7 @@ public class QProfilesTest {
     Map<String, String> paramsByKey = ImmutableMap.of("max", "20");
     when(service.createRule(eq(rule), eq("Rule name"), eq(Severity.MAJOR), eq("My note"), eq(paramsByKey), any(UserSession.class))).thenReturn(newRule);
 
-    qProfiles.newRule(1, 10, "Rule name", Severity.MAJOR, "My note", paramsByKey);
+    qProfiles.newRule(10, "Rule name", Severity.MAJOR, "My note", paramsByKey);
 
     verify(service).createRule(eq(rule), eq("Rule name"), eq(Severity.MAJOR), eq("My note"), eq(paramsByKey), any(UserSession.class));
     verify(rules).getFromRuleId(11);
@@ -555,8 +553,6 @@ public class QProfilesTest {
 
   @Test
   public void fail_to_create_new_rule_on_empty_parameters() throws Exception {
-    QualityProfileDto profile = new QualityProfileDto().setId(1).setName("My profile").setLanguage("java");
-    when(qualityProfileDao.selectById(1)).thenReturn(profile);
     RuleDto rule = new RuleDto().setId(10).setRepositoryKey("squid").setRuleKey("AvoidCycle");
     when(ruleDao.selectById(10)).thenReturn(rule);
 
@@ -565,7 +561,7 @@ public class QProfilesTest {
     when(service.createRule(eq(rule), eq("Rule name"), eq(Severity.MAJOR), eq("My note"), eq(paramsByKey), any(UserSession.class))).thenReturn(newRule);
 
     try {
-      qProfiles.newRule(1, 10, "", "", "", paramsByKey);
+      qProfiles.newRule( 10, "", "", "", paramsByKey);
       fail();
     } catch (Exception e) {
       assertThat(e).isInstanceOf(BadRequestException.class);
@@ -577,8 +573,6 @@ public class QProfilesTest {
 
   @Test
   public void fail_to_create_new_rule_when_rule_name_already_exists() throws Exception {
-    QualityProfileDto profile = new QualityProfileDto().setId(1).setName("My profile").setLanguage("java");
-    when(qualityProfileDao.selectById(1)).thenReturn(profile);
     RuleDto rule = new RuleDto().setId(10).setRepositoryKey("squid").setRuleKey("AvoidCycle");
     when(ruleDao.selectById(10)).thenReturn(rule);
 
@@ -589,7 +583,7 @@ public class QProfilesTest {
     when(service.createRule(eq(rule), eq("Rule name"), eq(Severity.MAJOR), eq("My note"), eq(paramsByKey), any(UserSession.class))).thenReturn(newRule);
 
     try {
-      qProfiles.newRule(1, 10, "Rule name", Severity.MAJOR, "My note", paramsByKey);
+      qProfiles.newRule(10, "Rule name", Severity.MAJOR, "My note", paramsByKey);
       fail();
     } catch (Exception e) {
       assertThat(e).isInstanceOf(BadRequestException.class);