From 1a8e027826df25a65ef72a57f2644c3354aac3f5 Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Wed, 25 Jun 2014 12:57:36 +0200 Subject: [PATCH] SONAR-5407 Add a some medium tests on rule with debt --- .../server/rule/ws/ShowActionMediumTest.java | 95 ++++++++++++++++++- ...ith_default_and_overridden_debt_infos.json | 27 ++++++ .../show_rule_with_default_debt_infos.json | 27 ++++++ ...show_rule_with_overridden_debt_infos.json} | 0 4 files changed, 146 insertions(+), 3 deletions(-) create mode 100644 sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_default_and_overridden_debt_infos.json create mode 100644 sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_default_debt_infos.json rename sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/{show_rule_with_debt_infos.json => show_rule_with_overridden_debt_infos.json} (100%) diff --git a/sonar-server/src/test/java/org/sonar/server/rule/ws/ShowActionMediumTest.java b/sonar-server/src/test/java/org/sonar/server/rule/ws/ShowActionMediumTest.java index 01a174964bb..9373d3691bd 100644 --- a/sonar-server/src/test/java/org/sonar/server/rule/ws/ShowActionMediumTest.java +++ b/sonar-server/src/test/java/org/sonar/server/rule/ws/ShowActionMediumTest.java @@ -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 description") + .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 description") + .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_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 index 00000000000..7bbf8f63577 --- /dev/null +++ b/sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_default_and_overridden_debt_infos.json @@ -0,0 +1,27 @@ +{ + "rule": { + "key": "java:S001", + "repo": "java", + "name": "Rule S001", + "htmlDesc": "Rule S001 description", + "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 index 00000000000..84a0cc89f5e --- /dev/null +++ b/sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_default_debt_infos.json @@ -0,0 +1,27 @@ +{ + "rule": { + "key": "java:S001", + "repo": "java", + "name": "Rule S001", + "htmlDesc": "Rule S001 description", + "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_debt_infos.json b/sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_overridden_debt_infos.json similarity index 100% rename from sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_debt_infos.json rename to sonar-server/src/test/resources/org/sonar/server/rule/ws/ShowActionMediumTest/show_rule_with_overridden_debt_infos.json -- 2.39.5