aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDuarte Meneses <duarte.meneses@sonarsource.com>2018-06-06 16:23:26 +0200
committerSonarTech <sonartech@sonarsource.com>2018-06-11 20:20:48 +0200
commite288ca891aed22155807ca13de4a6d0eefc6dc88 (patch)
treecc3fa1f29b900de56b076b4eb2ada287c93d3202
parent65d171d1893dbeb55282254dd19c4461776fae1d (diff)
downloadsonarqube-e288ca891aed22155807ca13de4a6d0eefc6dc88.tar.gz
sonarqube-e288ca891aed22155807ca13de4a6d0eefc6dc88.zip
SONAR-10380 Add WS response examples for /api/rules/create and /api/rules/update
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/rule/ws/CreateAction.java2
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/rule/ws/UpdateAction.java2
-rw-r--r--server/sonar-server/src/main/resources/org/sonar/server/rule/ws/example-create.json28
-rw-r--r--server/sonar-server/src/main/resources/org/sonar/server/rule/ws/example-update.json30
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/rule/ws/CreateActionTest.java8
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/rule/ws/UpdateActionTest.java8
6 files changed, 78 insertions, 0 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/rule/ws/CreateAction.java b/server/sonar-server/src/main/java/org/sonar/server/rule/ws/CreateAction.java
index 6c6a28e20a6..2fdde1ed1e8 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/rule/ws/CreateAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/rule/ws/CreateAction.java
@@ -19,6 +19,7 @@
*/
package org.sonar.server.rule.ws;
+import com.google.common.io.Resources;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -81,6 +82,7 @@ public class CreateAction implements RulesWsAction {
.setPost(true)
.setDescription("Create a custom rule.<br>" +
"Requires the 'Administer Quality Profiles' permission")
+ .setResponseExample(Resources.getResource(getClass(), "example-create.json"))
.setSince("4.4")
.setChangelog(
new Change("5.5", "Creating manual rule is not more possible"))
diff --git a/server/sonar-server/src/main/java/org/sonar/server/rule/ws/UpdateAction.java b/server/sonar-server/src/main/java/org/sonar/server/rule/ws/UpdateAction.java
index d93e3e1e85a..76f9d51a19e 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/rule/ws/UpdateAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/rule/ws/UpdateAction.java
@@ -20,6 +20,7 @@
package org.sonar.server.rule.ws;
import com.google.common.base.Splitter;
+import com.google.common.io.Resources;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -92,6 +93,7 @@ public class UpdateAction implements RulesWsAction {
WebService.NewAction action = controller
.createAction("update")
.setPost(true)
+ .setResponseExample(Resources.getResource(getClass(), "example-update.json"))
.setDescription("Update an existing rule.<br>" +
"Requires the 'Administer Quality Profiles' permission")
.setSince("4.4")
diff --git a/server/sonar-server/src/main/resources/org/sonar/server/rule/ws/example-create.json b/server/sonar-server/src/main/resources/org/sonar/server/rule/ws/example-create.json
new file mode 100644
index 00000000000..7fab5a09713
--- /dev/null
+++ b/server/sonar-server/src/main/resources/org/sonar/server/rule/ws/example-create.json
@@ -0,0 +1,28 @@
+{
+ "rule":{
+ "key":"squid:forbidSonar",
+ "repo":"squid",
+ "name":"forbidSonar",
+ "createdAt":"2018-06-06T16:04:28+0200",
+ "htmlDesc":"Forbid classes with name starting with Sonar",
+ "mdDesc":"Forbid classes with name starting with Sonar",
+ "severity":"MAJOR",
+ "status":"READY",
+ "isTemplate":false,
+ "templateKey":"squid:S3688",
+ "sysTags":[],
+ "lang":"java",
+ "langName":"Java",
+ "params":[
+ {
+ "key":"className",
+ "htmlDesc":"Fully qualified name of the forbidden class. Use a regex to forbid a package.",
+ "defaultValue":"**/Sonar*",
+ "type":"STRING"
+ }
+ ],
+ "scope":"MAIN",
+ "isExternal":false,
+ "type":"CODE_SMELL"
+ }
+} \ No newline at end of file
diff --git a/server/sonar-server/src/main/resources/org/sonar/server/rule/ws/example-update.json b/server/sonar-server/src/main/resources/org/sonar/server/rule/ws/example-update.json
new file mode 100644
index 00000000000..1b8d109ce6e
--- /dev/null
+++ b/server/sonar-server/src/main/resources/org/sonar/server/rule/ws/example-update.json
@@ -0,0 +1,30 @@
+{
+ "rule":{
+ "key":"squid:forbidSonar",
+ "repo":"squid",
+ "name":"forbidSonar",
+ "createdAt":"2018-06-06T16:09:09+0200",
+ "htmlDesc":"Forbid classes with name starting with Sonar",
+ "mdDesc":"Forbid classes with name starting with Sonar",
+ "severity":"MAJOR",
+ "status":"READY",
+ "isTemplate":false,
+ "templateKey":"squid:S3688",
+ "tags":[],
+ "sysTags":[],
+ "lang":"java",
+ "langName":"Java",
+ "params":[
+ {
+ "key":"className",
+ "htmlDesc":"Fully qualified name of the forbidden class. Use a regex to forbid a package.",
+ "defaultValue":"**/Sonar*","type":"STRING"
+ }
+ ],
+ "debtOverloaded":false,
+ "remFnOverloaded":false,
+ "scope":"MAIN",
+ "isExternal":false,
+ "type":"CODE_SMELL"
+ }
+} \ No newline at end of file
diff --git a/server/sonar-server/src/test/java/org/sonar/server/rule/ws/CreateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/rule/ws/CreateActionTest.java
index f41511b2f9b..5b4f9885b40 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/rule/ws/CreateActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/rule/ws/CreateActionTest.java
@@ -81,6 +81,14 @@ public class CreateActionTest {
new RuleWsSupport(db.getDbClient(), userSession, defaultOrganizationProvider)));
@Test
+ public void check_definition() {
+ assertThat(ws.getDef().isPost()).isTrue();
+ assertThat(ws.getDef().isInternal()).isFalse();
+ assertThat(ws.getDef().responseExampleAsString()).isNotNull();
+ assertThat(ws.getDef().description()).isNotNull();
+ }
+
+ @Test
public void create_custom_rule() {
logInAsQProfileAdministrator();
// Template rule
diff --git a/server/sonar-server/src/test/java/org/sonar/server/rule/ws/UpdateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/rule/ws/UpdateActionTest.java
index 0399cc063fb..88acfcbb639 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/rule/ws/UpdateActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/rule/ws/UpdateActionTest.java
@@ -100,6 +100,14 @@ public class UpdateActionTest {
private WsActionTester ws = new WsActionTester(underTest);
@Test
+ public void check_definition() {
+ assertThat(ws.getDef().isPost()).isTrue();
+ assertThat(ws.getDef().isInternal()).isFalse();
+ assertThat(ws.getDef().responseExampleAsString()).isNotNull();
+ assertThat(ws.getDef().description()).isNotNull();
+ }
+
+ @Test
public void update_custom_rule() {
logInAsQProfileAdministrator();
RuleDefinitionDto templateRule = db.rules().insert(