From: Duarte Meneses Date: Wed, 6 Jun 2018 14:23:26 +0000 (+0200) Subject: SONAR-10380 Add WS response examples for /api/rules/create and /api/rules/update X-Git-Tag: 7.5~1056 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e288ca891aed22155807ca13de4a6d0eefc6dc88;p=sonarqube.git SONAR-10380 Add WS response examples for /api/rules/create and /api/rules/update --- 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.
" + "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.
" + "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 @@ -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(); 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 @@ -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();