]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10380 Add WS response examples for /api/rules/create and /api/rules/update
authorDuarte Meneses <duarte.meneses@sonarsource.com>
Wed, 6 Jun 2018 14:23:26 +0000 (16:23 +0200)
committerSonarTech <sonartech@sonarsource.com>
Mon, 11 Jun 2018 18:20:48 +0000 (20:20 +0200)
server/sonar-server/src/main/java/org/sonar/server/rule/ws/CreateAction.java
server/sonar-server/src/main/java/org/sonar/server/rule/ws/UpdateAction.java
server/sonar-server/src/main/resources/org/sonar/server/rule/ws/example-create.json [new file with mode: 0644]
server/sonar-server/src/main/resources/org/sonar/server/rule/ws/example-update.json [new file with mode: 0644]
server/sonar-server/src/test/java/org/sonar/server/rule/ws/CreateActionTest.java
server/sonar-server/src/test/java/org/sonar/server/rule/ws/UpdateActionTest.java

index 6c6a28e20a62aaacde1dd9ab194d2749240de475..2fdde1ed1e8c9f784b9f8cc4f23f0317e293f221 100644 (file)
@@ -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"))
index d93e3e1e85a3524d327517722ba297038ed55fd3..76f9d51a19e598b6db05d339ecbef9c1c94c615e 100644 (file)
@@ -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 (file)
index 0000000..7fab5a0
--- /dev/null
@@ -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 (file)
index 0000000..1b8d109
--- /dev/null
@@ -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
index f41511b2f9be1b00ae7d152eb064aa4359b93716..5b4f9885b402075ae51d85bc175d1df22ddb5b1a 100644 (file)
@@ -80,6 +80,14 @@ public class CreateActionTest {
     new RuleMapper(new Languages(), createMacroInterpreter()),
     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();
index 0399cc063fb6e61ea01d4bc8617a4f5f7ff328e8..88acfcbb639f35f97373d28fae244d3dfb2a77ed 100644 (file)
@@ -99,6 +99,14 @@ public class UpdateActionTest {
   private WsAction underTest = new UpdateAction(dbClient, ruleUpdater, mapper, userSession, new RuleWsSupport(db.getDbClient(), userSession, defaultOrganizationProvider));
   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();