]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5407 Add a some medium tests on rule with debt
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Wed, 25 Jun 2014 10:57:36 +0000 (12:57 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Wed, 25 Jun 2014 10:57:36 +0000 (12:57 +0200)
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_with_debt_infos.json [deleted file]
sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_default_and_overridden_debt_infos.json [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_default_debt_infos.json [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_overridden_debt_infos.json [new file with mode: 0644]

index 01a174964bb2ef32b5b63031f61506d799cbd054..9373d3691bda290103173fd5357b7ac6ba05ec0d 100644 (file)
@@ -94,8 +94,7 @@ public class ShowActionMediumTest {
   }
 
   @Test
-  @Ignore("Faiing because of java.lang.IllegalStateException: Field defaultDebtChar not specified in query options")
-  public void show_rule_with_debt_infos() throws Exception {
+  public void show_rule_with_default_debt_infos() throws Exception {
     MockUserSession.set()
       .setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN)
       .setLogin("me");
@@ -113,6 +112,51 @@ public class ShowActionMediumTest {
         .setStatus(RuleStatus.BETA)
         .setConfigKey("InternalKeyS001")
         .setLanguage("xoo")
+        .setDefaultSubCharacteristicId(subCharacteristicDto.getId())
+        .setDefaultRemediationFunction("LINEAR_OFFSET")
+        .setDefaultRemediationCoefficient("5d")
+        .setDefaultRemediationOffset("10h")
+        .setSubCharacteristicId(null)
+        .setRemediationFunction(null)
+        .setRemediationCoefficient(null)
+        .setRemediationOffset(null)
+        .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_with_default_debt_infos.json", false);
+  }
+
+  @Test
+  @Ignore
+  public void show_rule_with_overridden_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")
+        .setDefaultSubCharacteristicId(null)
+        .setDefaultRemediationFunction(null)
+        .setDefaultRemediationCoefficient(null)
+        .setDefaultRemediationOffset(null)
         .setSubCharacteristicId(subCharacteristicDto.getId())
         .setRemediationFunction("LINEAR_OFFSET")
         .setRemediationCoefficient("5d")
@@ -127,7 +171,52 @@ public class ShowActionMediumTest {
 
     WsTester.TestRequest request = wsTester.newGetRequest("api/rules", "show")
       .setParam("key", ruleDto.getKey().toString());
-    request.execute().assertJson(getClass(), "show_rule_with_debt_infos.json", false);
+    request.execute().assertJson(getClass(), "show_rule_with_overridden_debt_infos.json", false);
+  }
+
+  @Test
+  public void show_rule_with_default_and_overridden_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);
+
+    CharacteristicDto characteristicDto2 = new CharacteristicDto().setKey("OS").setName("OS").setEnabled(true);
+    tester.get(CharacteristicDao.class).insert(characteristicDto2, session);
+    CharacteristicDto subCharacteristicDto2 = new CharacteristicDto().setKey("OS_RELATED_PORTABILITY").setName("Portability").setEnabled(true).setParentId(characteristicDto2.getId());
+    tester.get(CharacteristicDao.class).insert(subCharacteristicDto2, 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")
+        .setDefaultSubCharacteristicId(subCharacteristicDto.getId())
+        .setDefaultRemediationFunction("LINEAR")
+        .setDefaultRemediationCoefficient("5min")
+        .setDefaultRemediationOffset(null)
+        .setSubCharacteristicId(subCharacteristicDto2.getId())
+        .setRemediationFunction("LINEAR_OFFSET")
+        .setRemediationCoefficient("5d")
+        .setRemediationOffset("10h")
+        .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_with_default_and_overridden_debt_infos.json", false);
   }
 
   @Test
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
deleted file mode 100644 (file)
index 67aa980..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-  "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": ".*"
-      }
-    ]
-  }
-}
-
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_default_and_overridden_debt_infos.json b/sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_default_and_overridden_debt_infos.json
new file mode 100644 (file)
index 0000000..7bbf8f6
--- /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": "OS",
+    "debtSubChar": "OS_RELATED_PORTABILITY",
+    "debtRemFnType": "LINEAR_OFFSET",
+    "debtRemFnCoeff": "5d",
+    "debtRemFnOffset": "10h",
+    "lang": "xoo",
+    "params": [
+      {
+        "key": "regex",
+        "desc": "Reg ex",
+        "defaultValue": ".*"
+      }
+    ]
+  }
+}
+
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_default_debt_infos.json b/sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_default_debt_infos.json
new file mode 100644 (file)
index 0000000..84a0cc8
--- /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": ".*"
+      }
+    ]
+  }
+}
+
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_overridden_debt_infos.json b/sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_overridden_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": ".*"
+      }
+    ]
+  }
+}
+