From 937fb8fd998ea71d8697d927efaabe1de5ae34de Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Tue, 24 Dec 2013 08:44:19 +0100 Subject: [PATCH] Fix some quality flaws --- .../org/sonar/server/qualityprofile/QProfiles.java | 10 +++++++--- .../new_rules_configuration_controller.rb | 3 ++- .../sonar/server/qualityprofile/QProfilesTest.java | 12 +++--------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfiles.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfiles.java index 293c8ed8321..d857fd283b8 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfiles.java +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfiles.java @@ -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 paramsByKey) { - QualityProfileDto qualityProfile = findNotNull(profileId); + public QProfileRule newRule(int ruleId, @Nullable String name, @Nullable String severity, @Nullable String description, Map paramsByKey) { RuleDto rule = findRuleNotNull(ruleId); validateNewRule(name, severity, description); RuleDto newRule = operations.createRule(rule, name, severity, description, paramsByKey, UserSession.get()); diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/new_rules_configuration_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/new_rules_configuration_controller.rb index 907395eb13e..9d97816221c 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/new_rules_configuration_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/new_rules_configuration_controller.rb @@ -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 diff --git a/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfilesTest.java b/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfilesTest.java index 3e54a9155f1..36ef43327f7 100644 --- a/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfilesTest.java +++ b/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfilesTest.java @@ -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 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); -- 2.39.5