From b1e9fe2a542c2172b634f8a908667ece2c570b32 Mon Sep 17 00:00:00 2001 From: Stephane Gamard Date: Wed, 14 May 2014 10:38:54 +0200 Subject: [PATCH] Added test with JSON assertion in RuleWS --- run.sh | 22 +++++++++++ .../org/sonar/server/rule2/ws/ShowAction.java | 25 +------------ .../server/rule2/ws/RulesWebServiceTest.java | 2 +- .../search_active_rules_params.json | 37 +++++++++++++++++++ 4 files changed, 61 insertions(+), 25 deletions(-) create mode 100755 run.sh create mode 100644 sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/search_active_rules_params.json diff --git a/run.sh b/run.sh new file mode 100755 index 00000000000..096e1eac15c --- /dev/null +++ b/run.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +if [[ "$OSTYPE" == "darwin"* ]]; then + OS='macosx-universal-64' +else + OS='linux-x86-64' +fi + +if ! ls sonar-application/target/sonarqube-*.zip &> /dev/null; then + echo 'Sources are not built' + ./build.sh +fi + +cd sonar-application/target/ +if ! ls sonarqube-*/bin/$OS/sonar.sh &> /dev/null; then + unzip sonarqube-*.zip +fi +cd sonarqube-* +bin/$OS/sonar.sh restart +echo "sonar.es.http.port=9200" >> conf/sonar.properties +sleep 1 +tail -100f logs/sonar.log diff --git a/sonar-server/src/main/java/org/sonar/server/rule2/ws/ShowAction.java b/sonar-server/src/main/java/org/sonar/server/rule2/ws/ShowAction.java index 83d0428901f..8b304fee289 100644 --- a/sonar-server/src/main/java/org/sonar/server/rule2/ws/ShowAction.java +++ b/sonar-server/src/main/java/org/sonar/server/rule2/ws/ShowAction.java @@ -28,13 +28,10 @@ import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.api.utils.text.JsonWriter; import org.sonar.server.exceptions.NotFoundException; -import org.sonar.server.qualityprofile.ActiveRule; import org.sonar.server.rule2.Rule; import org.sonar.server.rule2.RuleParam; import org.sonar.server.rule2.RuleService; -import java.util.Map; - /** * @since 4.4 */ @@ -85,9 +82,8 @@ public class ShowAction implements RequestHandler { private void writeRule(Rule rule, JsonWriter json) { json - .prop("key", rule.key().toString()) .prop("repo", rule.key().repository()) - .prop("slug", rule.key().rule()) + .prop("key", rule.key().rule()) .prop("lang", rule.language()) .prop("name", rule.name()) .prop("htmlDesc", rule.htmlDescription()) @@ -107,24 +103,5 @@ public class ShowAction implements RequestHandler { .endObject(); } json.endArray(); - json.name("actives").beginArray(); - - for (ActiveRule activeRule : result.getActiveRules()) { - json - .beginObject() - .prop("key", activeRule.key().toString()) - .prop("inherit", activeRule.inherit()) - .prop("override", activeRule.override()) - .prop("severity", activeRule.severity()) - .prop("parent", activeRule.parent()) - .name("params").beginArray(); - for (Map.Entry param : activeRule.params().entrySet()) { - json.beginObject() - .prop("key", param.getKey()) - .prop("value", param.getValue()) - .endObject(); - } - json.endArray(); - } } } diff --git a/sonar-server/src/test/java/org/sonar/server/rule2/ws/RulesWebServiceTest.java b/sonar-server/src/test/java/org/sonar/server/rule2/ws/RulesWebServiceTest.java index 714e5ae1dcc..22c1185b210 100644 --- a/sonar-server/src/test/java/org/sonar/server/rule2/ws/RulesWebServiceTest.java +++ b/sonar-server/src/test/java/org/sonar/server/rule2/ws/RulesWebServiceTest.java @@ -170,7 +170,7 @@ public class RulesWebServiceTest { request.setParam("q","S001"); WsTester.Result result = request.execute(); - //TODO make JSON assertions here. + result.assertJson(this.getClass(),"search_active_rules_params.json"); } diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/search_active_rules_params.json b/sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/search_active_rules_params.json new file mode 100644 index 00000000000..0127dd68e0d --- /dev/null +++ b/sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/search_active_rules_params.json @@ -0,0 +1,37 @@ +{"total": 1, "rules": [ + { + "key": "java:S001", + "repo": "java", + "slug": "S001", + "lang": "js", + "name": "Rule S001", + "htmlDesc": "Description S001", + "status": "READY", + "template": false, + "internalKey": "InternalKeyS001", + "severity": "INFO", + "tags": [], + "sysTags": [], + "params": [ + { + "key": "my_var", + "desc": "My small description", + "defaultValue": "some value" + } + ], + "actives": [ + { + "key": "My Profile:java:java:S001", + "inherit": "none", + "override": false, + "severity": "BLOCKER", + "params": [ + { + "key": "my_var", + "value": "The VALUE" + } + ] + } + ] + } +]} -- 2.39.5