From 73b3b83eeae7d6d09f67a4f6ed3dd0dfac399388 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Fri, 31 Mar 2017 19:22:01 +0200 Subject: [PATCH] WS api/qualityprofiles/{de}activate_rule should return 204 No Content --- .../server/qualityprofile/ws/ActivateRuleAction.java | 1 + .../server/qualityprofile/ws/DeactivateRuleAction.java | 1 + .../server/qualityprofile/ws/ActivateRuleActionTest.java | 9 +++++++-- .../qualityprofile/ws/DeactivateRuleActionTest.java | 8 ++++++-- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRuleAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRuleAction.java index 0a284aae3e3..a7972794a35 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRuleAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRuleAction.java @@ -110,6 +110,7 @@ public class ActivateRuleAction implements QProfileWsAction { dbSession.commit(); activeRuleIndexer.index(changes); } + response.noContent(); } private static RuleKey readRuleKey(Request request) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRuleAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRuleAction.java index 228b4124527..c5fb6278007 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRuleAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRuleAction.java @@ -79,5 +79,6 @@ public class DeactivateRuleAction implements QProfileWsAction { ActiveRuleKey activeRuleKey = ActiveRuleKey.of(qualityProfileKey, ruleKey); ruleActivator.deactivateAndUpdateIndex(dbSession, activeRuleKey); } + response.noContent(); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRuleActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRuleActionTest.java index 9192c520ffc..051cd6ba879 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRuleActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRuleActionTest.java @@ -19,6 +19,7 @@ */ package org.sonar.server.qualityprofile.ws; +import java.net.HttpURLConnection; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -43,6 +44,7 @@ import org.sonar.server.qualityprofile.RuleActivator; import org.sonar.server.qualityprofile.index.ActiveRuleIndexer; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.TestRequest; +import org.sonar.server.ws.TestResponse; import org.sonar.server.ws.WsActionTester; import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; @@ -121,8 +123,10 @@ public class ActivateRuleActionTest { .setParam("severity", "BLOCKER") .setParam("params", "key1=v1;key2=v2") .setParam("reset", "false"); - request.execute(); + TestResponse response = request.execute(); + + assertThat(response.getStatus()).isEqualTo(HttpURLConnection.HTTP_NO_CONTENT); ArgumentCaptor captor = ArgumentCaptor.forClass(RuleActivation.class); Mockito.verify(ruleActivator).activate(any(DbSession.class), captor.capture(), eq(qualityProfile.getKey())); assertThat(captor.getValue().getRuleKey()).isEqualTo(ruleKey); @@ -144,8 +148,9 @@ public class ActivateRuleActionTest { .setParam("params", "key1=v1;key2=v2") .setParam("reset", "false"); - request.execute(); + TestResponse response = request.execute(); + assertThat(response.getStatus()).isEqualTo(HttpURLConnection.HTTP_NO_CONTENT); ArgumentCaptor captor = ArgumentCaptor.forClass(RuleActivation.class); Mockito.verify(ruleActivator).activate(any(DbSession.class), captor.capture(), eq(qualityProfile.getKey())); assertThat(captor.getValue().getRuleKey()).isEqualTo(ruleKey); diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRuleActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRuleActionTest.java index f42507a197f..7275be2197c 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRuleActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRuleActionTest.java @@ -19,6 +19,7 @@ */ package org.sonar.server.qualityprofile.ws; +import java.net.HttpURLConnection; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -41,6 +42,7 @@ import org.sonar.server.organization.TestDefaultOrganizationProvider; import org.sonar.server.qualityprofile.RuleActivator; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.TestRequest; +import org.sonar.server.ws.TestResponse; import org.sonar.server.ws.WsActionTester; import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; @@ -114,8 +116,9 @@ public class DeactivateRuleActionTest { .setParam("rule_key", ruleKey.toString()) .setParam("profile_key", qualityProfile.getKey()); - request.execute(); + TestResponse response = request.execute(); + assertThat(response.getStatus()).isEqualTo(HttpURLConnection.HTTP_NO_CONTENT); ArgumentCaptor captor = ArgumentCaptor.forClass(ActiveRuleKey.class); Mockito.verify(ruleActivator).deactivateAndUpdateIndex(any(DbSession.class), captor.capture()); assertThat(captor.getValue().ruleKey()).isEqualTo(ruleKey); @@ -133,8 +136,9 @@ public class DeactivateRuleActionTest { .setParam("rule_key", ruleKey.toString()) .setParam("profile_key", qualityProfile.getKey()); - request.execute(); + TestResponse response = request.execute(); + assertThat(response.getStatus()).isEqualTo(HttpURLConnection.HTTP_NO_CONTENT); ArgumentCaptor captor = ArgumentCaptor.forClass(ActiveRuleKey.class); Mockito.verify(ruleActivator).deactivateAndUpdateIndex(any(DbSession.class), captor.capture()); assertThat(captor.getValue().ruleKey()).isEqualTo(ruleKey); -- 2.39.5