From 6b974571f21e2ad76729ed893020c1877bcd86bb Mon Sep 17 00:00:00 2001 From: Stephane Gamard Date: Fri, 30 May 2014 18:57:35 +0200 Subject: [PATCH] SONAR-5244 - Implemented WS for active Rule Reset --- .../server/platform/ServerComponents.java | 2 + .../ws/BulkRuleActivationActions.java | 7 +- .../server/qualityprofile/ws/QProfilesWs.java | 13 ++- .../ws/RuleActivationActions.java | 11 ++- .../qualityprofile/ws/RuleResetAction.java | 87 +++++++++++++++++++ .../ws/QProfileRecreateBuiltInActionTest.java | 3 +- .../ws/QProfilesWsMediumTest.java | 75 +++++++++++----- .../qualityprofile/ws/QProfilesWsTest.java | 13 +-- 8 files changed, 175 insertions(+), 36 deletions(-) create mode 100644 sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/RuleResetAction.java diff --git a/sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java b/sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java index f0a9c7ac03f..aa5fbc5c401 100644 --- a/sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java +++ b/sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java @@ -194,6 +194,7 @@ import org.sonar.server.qualityprofile.ws.ProfilesWs; import org.sonar.server.qualityprofile.ws.QProfileRecreateBuiltInAction; import org.sonar.server.qualityprofile.ws.QProfilesWs; import org.sonar.server.qualityprofile.ws.RuleActivationActions; +import org.sonar.server.qualityprofile.ws.RuleResetAction; import org.sonar.server.rule.DeprecatedRulesDefinition; import org.sonar.server.rule.RegisterRules; import org.sonar.server.rule.RubyRuleService; @@ -422,6 +423,7 @@ class ServerComponents { pico.addSingleton(QProfilesWs.class); pico.addSingleton(ProfilesWs.class); pico.addSingleton(RuleActivationActions.class); + pico.addSingleton(RuleResetAction.class); pico.addSingleton(BulkRuleActivationActions.class); pico.addSingleton(RuleActivator.class); pico.addSingleton(QProfileService.class); diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/BulkRuleActivationActions.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/BulkRuleActivationActions.java index 2bd98428b47..a45e4a71831 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/BulkRuleActivationActions.java +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/BulkRuleActivationActions.java @@ -40,6 +40,9 @@ public class BulkRuleActivationActions implements ServerComponent { public static final String PROFILE_KEY = "profile_key"; public static final String SEVERITY = "severity"; + public static final String BULK_ACTIVATE_ACTION = "activate_rules"; + public static final String BULK_DEACTIVATE_ACTION = "deactivate_rules"; + private final RuleActivator service; private final RuleService ruleService; @@ -55,7 +58,7 @@ public class BulkRuleActivationActions implements ServerComponent { private void defineActivateAction(WebService.NewController controller) { WebService.NewAction activate = controller - .createAction("activate_rules") + .createAction(BULK_ACTIVATE_ACTION) .setDescription("Bulk-activate rules on one or several Quality profiles") .setPost(true) .setSince("4.4") @@ -76,7 +79,7 @@ public class BulkRuleActivationActions implements ServerComponent { private void defineDeactivateAction(WebService.NewController controller) { WebService.NewAction deactivate = controller - .createAction("deactivate_rules") + .createAction(BULK_DEACTIVATE_ACTION) .setDescription("Bulk deactivate rules on Quality profiles") .setPost(true) .setSince("4.4") diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfilesWs.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfilesWs.java index ec1e1d058b6..adc72726036 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfilesWs.java +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfilesWs.java @@ -23,26 +23,33 @@ import org.sonar.api.server.ws.WebService; public class QProfilesWs implements WebService { + public static final String API_ENDPOINT = "api/qualityprofiles"; + private final QProfileRecreateBuiltInAction recreateBuiltInAction; private final RuleActivationActions ruleActivationActions; private final BulkRuleActivationActions bulkRuleActivationActions; + private final RuleResetAction ruleResetAction; - public QProfilesWs(QProfileRecreateBuiltInAction recreateBuiltInAction, RuleActivationActions ruleActivationActions, - BulkRuleActivationActions bulkRuleActivationActions) { + public QProfilesWs(QProfileRecreateBuiltInAction recreateBuiltInAction, + RuleActivationActions ruleActivationActions, + BulkRuleActivationActions bulkRuleActivationActions, + RuleResetAction ruleResetAction) { this.recreateBuiltInAction = recreateBuiltInAction; this.ruleActivationActions = ruleActivationActions; this.bulkRuleActivationActions = bulkRuleActivationActions; + this.ruleResetAction = ruleResetAction; } @Override public void define(Context context) { - NewController controller = context.createController("api/qualityprofiles") + NewController controller = context.createController(API_ENDPOINT) .setDescription("Quality profiles management") .setSince("4.4"); recreateBuiltInAction.define(controller); ruleActivationActions.define(controller); bulkRuleActivationActions.define(controller); + ruleResetAction.define(controller); controller.done(); } diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/RuleActivationActions.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/RuleActivationActions.java index e22395b8411..2103cdd4256 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/RuleActivationActions.java +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/RuleActivationActions.java @@ -39,6 +39,9 @@ public class RuleActivationActions implements ServerComponent { public static final String SEVERITY = "severity"; public static final String PARAMS = "params"; + public static final String ACTIVATE_ACTION = "activate_rule"; + public static final String DEACTIVATE_ACTION = "deactivate_rule"; + private final RuleActivator service; public RuleActivationActions(RuleActivator service) { @@ -52,7 +55,7 @@ public class RuleActivationActions implements ServerComponent { private void defineActivateAction(WebService.NewController controller) { WebService.NewAction activate = controller - .createAction("activate_rule") + .createAction(ACTIVATE_ACTION) .setDescription("Activate a rule on a Quality profile") .setHandler(new RequestHandler() { @Override @@ -75,7 +78,7 @@ public class RuleActivationActions implements ServerComponent { private void defineDeactivateAction(WebService.NewController controller) { WebService.NewAction deactivate = controller - .createAction("deactivate_rule") + .createAction(DEACTIVATE_ACTION) .setDescription("Deactivate a rule on a Quality profile") .setHandler(new RequestHandler() { @Override @@ -100,6 +103,10 @@ public class RuleActivationActions implements ServerComponent { .setExampleValue("squid:AvoidCycles"); } + + private void reset(Request request, Response response) { + } + private void activate(Request request, Response response) throws Exception { ActiveRuleKey key = readKey(request); RuleActivation activation = new RuleActivation(key); diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/RuleResetAction.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/RuleResetAction.java new file mode 100644 index 00000000000..1bf026fa33f --- /dev/null +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/RuleResetAction.java @@ -0,0 +1,87 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.qualityprofile.ws; + +import org.sonar.api.ServerComponent; +import org.sonar.api.rule.RuleKey; +import org.sonar.api.server.ws.Request; +import org.sonar.api.server.ws.RequestHandler; +import org.sonar.api.server.ws.Response; +import org.sonar.api.server.ws.WebService; +import org.sonar.core.qualityprofile.db.ActiveRuleKey; +import org.sonar.core.qualityprofile.db.QualityProfileKey; +import org.sonar.server.qualityprofile.RuleActivation; +import org.sonar.server.qualityprofile.RuleActivator; + +/** + * @Since 4.4 + */ +public class RuleResetAction implements ServerComponent { + + public static final String PROFILE_KEY = "profile_key"; + public static final String RULE_KEY = "rule_key"; + + public static final String RESET_ACTION = "reset"; + + private final RuleActivator service; + + public RuleResetAction(RuleActivator service) { + this.service = service; + } + + void define(WebService.NewController controller) { + defineResetAction(controller); + } + + private void defineResetAction(WebService.NewController controller) { + WebService.NewAction resetAction = controller + .createAction(RESET_ACTION) + .setDescription("Reset an Activate rule based on its parent profile") + .setHandler(new RequestHandler() { + @Override + public void handle(Request request, Response response) throws Exception { + reset(request, response); + } + }) + .setPost(true) + .setSince("4.4"); + + resetAction.createParam(PROFILE_KEY) + .setDescription("Key of Quality profile") + .setRequired(true) + .setExampleValue("Sonar way:java"); + + resetAction.createParam(RULE_KEY) + .setDescription("Key of the rule to activate") + .setRequired(true) + .setExampleValue("squid:AvoidCycles"); } + + private void reset(Request request, Response response) { + ActiveRuleKey key = readKey(request); + RuleActivation activation = new RuleActivation(key); + service.reset(activation); + } + + private ActiveRuleKey readKey(Request request) { + return ActiveRuleKey.of( + QualityProfileKey.parse(request.mandatoryParam(PROFILE_KEY)), + RuleKey.parse(request.mandatoryParam(RULE_KEY))); + } +} diff --git a/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileRecreateBuiltInActionTest.java b/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileRecreateBuiltInActionTest.java index 1ee43775aab..9a0887e2898 100644 --- a/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileRecreateBuiltInActionTest.java +++ b/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileRecreateBuiltInActionTest.java @@ -50,7 +50,8 @@ public class QProfileRecreateBuiltInActionTest { tester = new WsTester(new QProfilesWs( new QProfileRecreateBuiltInAction(qProfileBackup), new RuleActivationActions(ruleActivator), - new BulkRuleActivationActions(ruleActivator, ruleService))); + new BulkRuleActivationActions(ruleActivator, ruleService), + new RuleResetAction(ruleActivator))); } @Test diff --git a/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java b/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java index f558209bd5c..f16393e121d 100644 --- a/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java +++ b/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java @@ -50,11 +50,6 @@ public class QProfilesWsMediumTest { @ClassRule public static ServerTester tester = new ServerTester(); - private static final String API_ENDPOINT = "api/qualityprofiles"; - private static final String API_BULK_RULE_ACTIVATE_METHOD = "activate_rules"; - private static final String API_BULK_RULE_DEACTIVATE_METHOD = "deactivate_rules"; - private static final String API_RULE_ACTIVATE_METHOD = "activate_rule"; - private static final String API_RULE_DEACTIVATE_METHOD = "deactivate_rule"; private static final String API_BUILT_IN_METHOD = "recreate_built_in"; QProfilesWs ws; @@ -84,14 +79,14 @@ public class QProfilesWsMediumTest { WebService.Context context = new WebService.Context(); ws.define(context); - WebService.Controller controller = context.controller(API_ENDPOINT); + WebService.Controller controller = context.controller(QProfilesWs.API_ENDPOINT); assertThat(controller).isNotNull(); assertThat(controller.actions()).hasSize(5); - assertThat(controller.action(API_BULK_RULE_ACTIVATE_METHOD)).isNotNull(); - assertThat(controller.action(API_BULK_RULE_DEACTIVATE_METHOD)).isNotNull(); - assertThat(controller.action(API_RULE_ACTIVATE_METHOD)).isNotNull(); - assertThat(controller.action(API_RULE_DEACTIVATE_METHOD)).isNotNull(); + assertThat(controller.action(BulkRuleActivationActions.BULK_ACTIVATE_ACTION)).isNotNull(); + assertThat(controller.action(BulkRuleActivationActions.BULK_DEACTIVATE_ACTION)).isNotNull(); + assertThat(controller.action(RuleActivationActions.ACTIVATE_ACTION)).isNotNull(); + assertThat(controller.action(RuleActivationActions.DEACTIVATE_ACTION)).isNotNull(); assertThat(controller.action(API_BUILT_IN_METHOD)).isNotNull(); } @@ -106,7 +101,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).hasSize(1); // 1. Deactivate Rule - WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_RULE_DEACTIVATE_METHOD); + WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.DEACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(RuleActivationActions.RULE_KEY, rule.getKey().toString()); WsTester.Result result = request.execute(); @@ -133,7 +128,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).hasSize(4); // 1. Deactivate Rule - WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_BULK_RULE_DEACTIVATE_METHOD); + WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_DEACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); WsTester.Result result = request.execute(); session.clearCache(); @@ -158,7 +153,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).hasSize(2); // 1. Deactivate Rule - WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_BULK_RULE_DEACTIVATE_METHOD); + WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_DEACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); WsTester.Result result = request.execute(); session.clearCache(); @@ -181,7 +176,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).hasSize(2); // 1. Deactivate Rule - WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_BULK_RULE_DEACTIVATE_METHOD); + WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_DEACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(SearchOptions.PARAM_TEXT_QUERY, "hello"); WsTester.Result result = request.execute(); @@ -201,7 +196,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).isEmpty(); // 1. Activate Rule - WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_RULE_ACTIVATE_METHOD); + WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(RuleActivationActions.RULE_KEY, rule.getKey().toString()); WsTester.Result result = request.execute(); @@ -222,7 +217,7 @@ public class QProfilesWsMediumTest { try { // 1. Activate Rule - WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_RULE_ACTIVATE_METHOD); + WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(RuleActivationActions.RULE_KEY, rule.getKey().toString()); WsTester.Result result = request.execute(); @@ -244,7 +239,7 @@ public class QProfilesWsMediumTest { // 1. Activate Rule - WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_RULE_ACTIVATE_METHOD); + WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(RuleActivationActions.RULE_KEY, rule.getKey().toString()); request.setParam(RuleActivationActions.SEVERITY, "MINOR"); @@ -271,7 +266,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).isEmpty(); // 1. Activate Rule - WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_BULK_RULE_ACTIVATE_METHOD); + WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(SearchAction.PARAM_LANGUAGES, "java"); WsTester.Result result = request.execute(); @@ -293,7 +288,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).isEmpty(); // 1. Activate Rule - WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_BULK_RULE_ACTIVATE_METHOD); + WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(SearchAction.PARAM_LANGUAGES, "java"); WsTester.Result result = request.execute(); @@ -320,7 +315,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, php.getKey())).isEmpty(); // 1. Activate Rule - WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_BULK_RULE_ACTIVATE_METHOD); + WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, php.getKey().toString()); request.setParam(SearchAction.PARAM_LANGUAGES, "php"); WsTester.Result result = request.execute(); @@ -343,7 +338,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).isEmpty(); // 1. Activate Rule with query returning 0 hits - WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_BULK_RULE_ACTIVATE_METHOD); + WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(SearchOptions.PARAM_TEXT_QUERY, "php"); WsTester.Result result = request.execute(); @@ -353,7 +348,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).hasSize(0); // 1. Activate Rule with query returning 1 hits - request = wsTester.newGetRequest(API_ENDPOINT, API_BULK_RULE_ACTIVATE_METHOD); + request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(SearchOptions.PARAM_TEXT_QUERY, "world"); result = request.execute(); @@ -363,6 +358,42 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).hasSize(1); } + @Test + public void reset() throws Exception { + + QualityProfileDto profile = QualityProfileDto.createFor("parent", "java"); + QualityProfileDto subProfile = QualityProfileDto.createFor("child", "java") + .setParent(profile.getName()); + db.qualityProfileDao().insert(session, profile, subProfile); + + RuleDto rule = getRule(profile.getLanguage(), "rule"); + + ActiveRuleDto active1 = ActiveRuleDto.createFor(profile, rule) + .setSeverity(rule.getSeverityString()); + ActiveRuleDto active2 = ActiveRuleDto.createFor(subProfile, rule) + .setSeverity("MINOR"); + db.activeRuleDao().insert(session, active1, active2); + + session.commit(); + + // 0. assert rule child rule is minor + assertThat(db.activeRuleDao().getByKey(session, active2.getKey()).getSeverityString()).isEqualTo("MINOR"); + + // 1. reset child rule + WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, RuleResetAction.RESET_ACTION); + request.setParam(RuleActivationActions.PROFILE_KEY, subProfile.getKey().toString()); + request.setParam(RuleActivationActions.RULE_KEY, rule.getKey().toString()); + WsTester.Result result = request.execute(); + session.clearCache(); + + // 0. assert rule child rule is NOT minor + assertThat(db.activeRuleDao().getByKey(session, active2.getKey()).getSeverityString()).isNotEqualTo("MINOR"); + + + } + + + private QualityProfileDto getProfile(String lang) { QualityProfileDto profile = QualityProfileDto.createFor("test", lang); db.qualityProfileDao().insert(session, profile); diff --git a/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsTest.java b/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsTest.java index aeee6954e54..fd8b514b577 100644 --- a/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsTest.java +++ b/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsTest.java @@ -23,8 +23,8 @@ package org.sonar.server.qualityprofile.ws; import org.junit.Before; import org.junit.Test; import org.sonar.api.server.ws.WebService; -import org.sonar.server.qualityprofile.RuleActivator; import org.sonar.server.qualityprofile.QProfileBackup; +import org.sonar.server.qualityprofile.RuleActivator; import org.sonar.server.rule.RuleService; import org.sonar.server.ws.WsTester; @@ -42,14 +42,15 @@ public class QProfilesWsTest { controller = new WsTester(new QProfilesWs(new QProfileRecreateBuiltInAction( mock(QProfileBackup.class)), new RuleActivationActions(ruleActivator), - new BulkRuleActivationActions(ruleActivator, ruleService) - )).controller("api/qualityprofiles"); + new BulkRuleActivationActions(ruleActivator, ruleService), + new RuleResetAction(ruleActivator) + )).controller(QProfilesWs.API_ENDPOINT); } @Test public void define_controller() throws Exception { assertThat(controller).isNotNull(); - assertThat(controller.path()).isEqualTo("api/qualityprofiles"); + assertThat(controller.path()).isEqualTo(QProfilesWs.API_ENDPOINT); assertThat(controller.description()).isNotEmpty(); assertThat(controller.actions()).hasSize(5); } @@ -64,7 +65,7 @@ public class QProfilesWsTest { @Test public void define_activate_rule_action() throws Exception { - WebService.Action restoreProfiles = controller.action("activate_rule"); + WebService.Action restoreProfiles = controller.action(RuleActivationActions.ACTIVATE_ACTION); assertThat(restoreProfiles).isNotNull(); assertThat(restoreProfiles.isPost()).isTrue(); assertThat(restoreProfiles.params()).hasSize(4); @@ -72,7 +73,7 @@ public class QProfilesWsTest { @Test public void define_deactivate_rule_action() throws Exception { - WebService.Action restoreProfiles = controller.action("deactivate_rule"); + WebService.Action restoreProfiles = controller.action(RuleActivationActions.DEACTIVATE_ACTION); assertThat(restoreProfiles).isNotNull(); assertThat(restoreProfiles.isPost()).isTrue(); assertThat(restoreProfiles.params()).hasSize(2); -- 2.39.5