瀏覽代碼

SONAR-10380 Add WS response examples for /api/rules/create and /api/rules/update

tags/7.5
Duarte Meneses 6 年之前
父節點
當前提交
e288ca891a

+ 2
- 0
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"))

+ 2
- 0
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")

+ 28
- 0
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"
}
}

+ 30
- 0
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"
}
}

+ 8
- 0
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();

+ 8
- 0
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();

Loading…
取消
儲存