From: Duarte Meneses Date: Tue, 24 Apr 2018 07:19:12 +0000 (+0200) Subject: SONAR-10543 Fix external issues effort X-Git-Tag: 7.5~1301 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=4373ca61250f094d623bc951c90978118e2179c1;p=sonarqube.git SONAR-10543 Fix external issues effort --- diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/ExternalIssueImporter.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/ExternalIssueImporter.java index 99100318b68..74cf2e6434d 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/ExternalIssueImporter.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/ExternalIssueImporter.java @@ -72,9 +72,12 @@ public class ExternalIssueImporter { NewExternalIssue externalIssue = context.newExternalIssue() .forRule(RuleKey.of(issue.engineId, issue.ruleId)) .severity(Severity.valueOf(issue.severity)) - .remediationEffortMinutes(20L) .type(RuleType.valueOf(issue.type)); + if (issue.effortMinutes != null) { + externalIssue.remediationEffortMinutes(Long.valueOf(issue.effortMinutes)); + } + NewIssueLocation primary = fillLocation(context, externalIssue.newLocation(), issue.primaryLocation); if (primary != null) { knownFiles.add(issue.primaryLocation.filePath); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/ReportParserTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/ReportParserTest.java index add4404b2a9..5c67ec7707e 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/ReportParserTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/ReportParserTest.java @@ -43,7 +43,7 @@ public class ReportParserTest { assertThat(report.issues[0].engineId).isEqualTo("eslint"); assertThat(report.issues[0].ruleId).isEqualTo("rule1"); assertThat(report.issues[0].severity).isEqualTo("MAJOR"); - assertThat(report.issues[0].effortMinutes).isEqualTo(20); + assertThat(report.issues[0].effortMinutes).isEqualTo(40); assertThat(report.issues[0].type).isEqualTo("CODE_SMELL"); assertThat(report.issues[0].primaryLocation.filePath).isEqualTo("file1.js"); assertThat(report.issues[0].primaryLocation.message).isEqualTo("fix the issue here"); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/issues/ExternalIssuesMediumTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/issues/ExternalIssuesMediumTest.java index 92e01b6491d..dddb88040ff 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/issues/ExternalIssuesMediumTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/issues/ExternalIssuesMediumTest.java @@ -92,6 +92,7 @@ public class ExternalIssuesMediumTest { assertThat(issue.getMsg()).isEqualTo("fix the issue here"); assertThat(issue.getRuleKey()).isEqualTo("rule1"); assertThat(issue.getSeverity()).isEqualTo(Severity.MAJOR); + assertThat(issue.getEffort()).isEqualTo(50l); assertThat(issue.getType()).isEqualTo(IssueType.CODE_SMELL); assertThat(issue.getTextRange().getStartLine()).isEqualTo(5); assertThat(issue.getTextRange().getEndLine()).isEqualTo(5); @@ -105,6 +106,7 @@ public class ExternalIssuesMediumTest { assertThat(issue.getRuleKey()).isEqualTo("rule2"); assertThat(issue.getSeverity()).isEqualTo(Severity.CRITICAL); assertThat(issue.getType()).isEqualTo(IssueType.BUG); + assertThat(issue.getEffort()).isZero(); assertThat(issue.getTextRange().getStartLine()).isEqualTo(3); assertThat(issue.getTextRange().getEndLine()).isEqualTo(3); assertThat(issue.getTextRange().getStartOffset()).isEqualTo(0); diff --git a/sonar-scanner-engine/src/test/resources/mediumtest/xoo/sample/externalIssues.json b/sonar-scanner-engine/src/test/resources/mediumtest/xoo/sample/externalIssues.json index 539533af78f..8ad6dd2c9ec 100644 --- a/sonar-scanner-engine/src/test/resources/mediumtest/xoo/sample/externalIssues.json +++ b/sonar-scanner-engine/src/test/resources/mediumtest/xoo/sample/externalIssues.json @@ -5,6 +5,7 @@ "ruleId": "rule1", "severity": "MAJOR", "type": "CODE_SMELL", + "effortMinutes": 50, "primaryLocation": { "message": "fix the issue here", "filePath": "xources/hello/HelloJava.xoo", diff --git a/sonar-scanner-engine/src/test/resources/org/sonar/scanner/externalissue/report.json b/sonar-scanner-engine/src/test/resources/org/sonar/scanner/externalissue/report.json index b951311436b..1009cfe4eb8 100644 --- a/sonar-scanner-engine/src/test/resources/org/sonar/scanner/externalissue/report.json +++ b/sonar-scanner-engine/src/test/resources/org/sonar/scanner/externalissue/report.json @@ -5,7 +5,7 @@ "ruleId": "rule1", "severity": "MAJOR", "type": "CODE_SMELL", - "effortMinutes": 20, + "effortMinutes": 40, "primaryLocation": { "message": "fix the issue here", "filePath": "file1.js", diff --git a/tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueTest.java b/tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueTest.java index 834f44ec1ff..4639acc353a 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueTest.java @@ -101,7 +101,7 @@ public class ExternalIssueTest { assertThat(issuesList.get(0).getType()).isEqualTo(RuleType.CODE_SMELL); assertThat(issuesList.get(0).getComponent()).isEqualTo("sample:src/main/xoo/sample/Sample.xoo"); assertThat(issuesList.get(0).getStatus()).isEqualTo("OPEN"); - assertThat(issuesList.get(0).getEffort()).isEqualTo("20min"); + assertThat(issuesList.get(0).getEffort()).isEqualTo("50min"); assertThat(issuesList.get(0).getExternalRuleEngine()).isEqualTo("externalXoo"); issuesList = tester.wsClient().issues().search(new SearchRequest()