]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5407 Add a medium test to display rule with debt infos (ignored as it's failing)
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Wed, 25 Jun 2014 10:38:44 +0000 (12:38 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Wed, 25 Jun 2014 10:38:50 +0000 (12:38 +0200)
sonar-server/src/main/java/org/sonar/server/rule/ws/RuleMapping.java
sonar-server/src/test/java/org/sonar/server/rule/ws/ShowActionMediumTest.java
sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule.json
sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_debt_infos.json [new file with mode: 0644]

index 1466dd92ddf9cfa1d783e4469c0c3f9c5ae46417..3cff962206be65bf2073c0ae3279e632d219058d 100644 (file)
@@ -48,8 +48,8 @@ public class RuleMapping extends BaseMapping {
     addIndexStringField("templateKey", RuleNormalizer.RuleField.TEMPLATE_KEY.field());
     addIndexArrayField("tags", RuleNormalizer.RuleField.TAGS.field());
     addIndexArrayField("sysTags", RuleNormalizer.RuleField.SYSTEM_TAGS.field());
-    addField("defaultDebtChar", new IndexStringField("debtChar", RuleNormalizer.RuleField.DEFAULT_CHARACTERISTIC.field()));
-    addField("defaultDebtChar", new IndexStringField("debtSubChar", RuleNormalizer.RuleField.DEFAULT_SUB_CHARACTERISTIC.field()));
+    addField("defaultDebtChar", new IndexStringField("defaultDebtChar", RuleNormalizer.RuleField.DEFAULT_CHARACTERISTIC.field()));
+    addField("defaultDebtChar", new IndexStringField("defaultDebtSubChar", RuleNormalizer.RuleField.DEFAULT_SUB_CHARACTERISTIC.field()));
     addField("debtChar", new IndexStringField("debtChar", RuleNormalizer.RuleField.CHARACTERISTIC.field()));
     addField("debtChar", new IndexStringField("debtSubChar", RuleNormalizer.RuleField.SUB_CHARACTERISTIC.field()));
     addField("debtRemFn", new IndexStringField("debtRemFnType", RuleNormalizer.RuleField.DEBT_FUNCTION_TYPE.field()));
index 63f6c909507a9046ced6bae2d5d8c32b007cee49..01a174964bb2ef32b5b63031f61506d799cbd054 100644 (file)
 
 package org.sonar.server.rule.ws;
 
-import org.junit.After;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Test;
+import org.junit.*;
 import org.sonar.api.rule.RuleKey;
 import org.sonar.api.rule.RuleStatus;
 import org.sonar.api.rule.Severity;
@@ -31,6 +28,8 @@ import org.sonar.core.permission.GlobalPermissions;
 import org.sonar.core.persistence.DbSession;
 import org.sonar.core.rule.RuleDto;
 import org.sonar.core.rule.RuleParamDto;
+import org.sonar.core.technicaldebt.db.CharacteristicDao;
+import org.sonar.core.technicaldebt.db.CharacteristicDto;
 import org.sonar.server.db.DbClient;
 import org.sonar.server.rule.NewRule;
 import org.sonar.server.rule.RuleService;
@@ -81,6 +80,40 @@ public class ShowActionMediumTest {
         .setStatus(RuleStatus.BETA)
         .setConfigKey("InternalKeyS001")
         .setLanguage("xoo")
+        .setTags(newHashSet("tag1", "tag2"))
+        .setSystemTags(newHashSet("systag1", "systag2"))
+    );
+    RuleParamDto param = RuleParamDto.createFor(ruleDto).setName("regex").setType("STRING").setDescription("Reg ex").setDefaultValue(".*");
+    ruleDao.addRuleParam(session, ruleDto, param);
+    session.commit();
+    session.clearCache();
+
+    WsTester.TestRequest request = wsTester.newGetRequest("api/rules", "show")
+      .setParam("key", ruleDto.getKey().toString());
+    request.execute().assertJson(getClass(), "show_rule.json", false);
+  }
+
+  @Test
+  @Ignore("Faiing because of java.lang.IllegalStateException: Field defaultDebtChar not specified in query options")
+  public void show_rule_with_debt_infos() throws Exception {
+    MockUserSession.set()
+      .setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN)
+      .setLogin("me");
+
+    CharacteristicDto characteristicDto = new CharacteristicDto().setKey("API").setName("API").setEnabled(true);
+    tester.get(CharacteristicDao.class).insert(characteristicDto, session);
+    CharacteristicDto subCharacteristicDto = new CharacteristicDto().setKey("API_ABUSE").setName("API Abuse").setEnabled(true).setParentId(characteristicDto.getId());
+    tester.get(CharacteristicDao.class).insert(subCharacteristicDto, session);
+
+    RuleDto ruleDto = ruleDao.insert(session,
+      RuleTesting.newDto(RuleKey.of("java", "S001"))
+        .setName("Rule S001")
+        .setDescription("Rule S001 <b>description</b>")
+        .setSeverity(Severity.MINOR)
+        .setStatus(RuleStatus.BETA)
+        .setConfigKey("InternalKeyS001")
+        .setLanguage("xoo")
+        .setSubCharacteristicId(subCharacteristicDto.getId())
         .setRemediationFunction("LINEAR_OFFSET")
         .setRemediationCoefficient("5d")
         .setRemediationOffset("10h")
@@ -94,7 +127,7 @@ public class ShowActionMediumTest {
 
     WsTester.TestRequest request = wsTester.newGetRequest("api/rules", "show")
       .setParam("key", ruleDto.getKey().toString());
-    request.execute().assertJson(getClass(), "show_rule.json", false);
+    request.execute().assertJson(getClass(), "show_rule_with_debt_infos.json", false);
   }
 
   @Test
index 418d0835186b634e9ed939f0d2ffd2e814a96792..20a27a3b6837d0c855f2a02a6e1c6061498d189f 100644 (file)
@@ -9,9 +9,6 @@
     "isTemplate": false,
     "tags": ["tag1", "tag2"],
     "sysTags": ["systag1", "systag2"],
-    "debtRemFnType": "LINEAR_OFFSET",
-    "debtRemFnCoeff": "5d",
-    "debtRemFnOffset": "10h",
     "lang": "xoo",
     "params": [
       {
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_debt_infos.json b/sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_debt_infos.json
new file mode 100644 (file)
index 0000000..67aa980
--- /dev/null
@@ -0,0 +1,27 @@
+{
+  "rule": {
+    "key": "java:S001",
+    "repo": "java",
+    "name": "Rule S001",
+    "htmlDesc": "Rule S001 <b>description</b>",
+    "severity": "MINOR",
+    "status": "BETA",
+    "isTemplate": false,
+    "tags": ["tag1", "tag2"],
+    "sysTags": ["systag1", "systag2"],
+    "debtChar": "API",
+    "debtSubChar": "API Abuse",
+    "debtRemFnType": "LINEAR_OFFSET",
+    "debtRemFnCoeff": "5d",
+    "debtRemFnOffset": "10h",
+    "lang": "xoo",
+    "params": [
+      {
+        "key": "regex",
+        "desc": "Reg ex",
+        "defaultValue": ".*"
+      }
+    ]
+  }
+}
+