From 2552e0dcff500d999401cce943a87dcc766eb623 Mon Sep 17 00:00:00 2001 From: Duarte Meneses Date: Thu, 19 Apr 2018 16:30:38 +0200 Subject: [PATCH] SONAR-10544 fix tests --- .../rule/OneExternalIssuePerLineSensor.java | 2 +- .../issue/NewExternalRule.java | 19 +--------------- .../issue/TrackerRawInputFactory.java | 4 ---- .../issue/NewExternalRuleTest.java | 22 +------------------ .../issue/RuleRepositoryImplTest.java | 8 +------ .../step/PersistExternalRulesStepTest.java | 12 +++------- .../server/rule/ExternalRuleCreatorTest.java | 2 -- .../batch/sensor/issue/NewExternalIssue.java | 2 +- .../issue/internal/DefaultExternalIssue.java | 2 +- .../internal/DefaultExternalIssueTest.java | 8 +++---- .../externalissue/ExternalIssueImporter.java | 1 + .../scanner/externalissue/ReportParser.java | 2 ++ .../sonar/scanner/issue/ModuleIssuesTest.java | 2 ++ 13 files changed, 18 insertions(+), 68 deletions(-) diff --git a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/OneExternalIssuePerLineSensor.java b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/OneExternalIssuePerLineSensor.java index 7b872e26ee8..d9fe4b59e82 100644 --- a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/OneExternalIssuePerLineSensor.java +++ b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/OneExternalIssuePerLineSensor.java @@ -75,7 +75,7 @@ public class OneExternalIssuePerLineSensor implements Sensor { .at(file.selectLine(line)) .message("This issue is generated on each line")) .severity(Severity.valueOf(SEVERITY)) - .remediationEffort(EFFORT) + .remediationEffortMinutes(EFFORT) .type(type) .save(); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRule.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRule.java index 2e4c067a20d..8b85d1486f9 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRule.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRule.java @@ -31,12 +31,10 @@ import org.sonar.api.server.debt.DebtRemediationFunction; public class NewExternalRule implements Rule { private final RuleKey key; private final String name; - private final RuleType type; private final String pluginKey; private NewExternalRule(Builder builder) { this.key = checkNotNull(builder.key, "key"); - this.type = checkNotNull(builder.type, "type"); this.pluginKey = builder.pluginKey; this.name = builder.name; } @@ -70,7 +68,7 @@ public class NewExternalRule implements Rule { @Override public RuleType getType() { - return type; + return null; } @Override @@ -95,8 +93,6 @@ public class NewExternalRule implements Rule { public static class Builder { private RuleKey key; - private String severity; - private RuleType type; private String pluginKey; private String name; @@ -110,19 +106,6 @@ public class NewExternalRule implements Rule { return this; } - public Builder setType(RuleType type) { - this.type = type; - return this; - } - - public String severity() { - return severity; - } - - public RuleType type() { - return type; - } - public String name() { return name; } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/TrackerRawInputFactory.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/TrackerRawInputFactory.java index 320a7d10708..8b134cf9d18 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/TrackerRawInputFactory.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/TrackerRawInputFactory.java @@ -214,13 +214,9 @@ public class TrackerRawInputFactory { private NewExternalRule toExternalRule(ScannerReport.ExternalIssue reportIssue) { NewExternalRule.Builder builder = new NewExternalRule.Builder() - .setType(toRuleType(reportIssue.getType())) .setName(RuleKey.of(reportIssue.getRuleRepository(), reportIssue.getRuleKey()).toString()) .setKey(RuleKey.of(RuleKey.EXTERNAL_RULE_REPO_PREFIX + reportIssue.getRuleRepository(), reportIssue.getRuleKey())); - if (reportIssue.getSeverity() != Severity.UNSET_SEVERITY) { - builder.setSeverity(reportIssue.getSeverity().name()); - } return builder.build(); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRuleTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRuleTest.java index f1ade8f696c..f973b28b7b8 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRuleTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRuleTest.java @@ -22,7 +22,6 @@ package org.sonar.server.computation.task.projectanalysis.issue; import org.junit.Test; import org.junit.rules.ExpectedException; import org.sonar.api.rule.RuleKey; -import org.sonar.api.rules.RuleType; import static org.assertj.core.api.Assertions.assertThat; @@ -35,31 +34,14 @@ public class NewExternalRuleTest { NewExternalRule.Builder builder = new NewExternalRule.Builder() .setKey(RuleKey.of("repo", "rule")) .setPluginKey("repo") - .setName("name") - .setSeverity("MAJOR") - .setType(RuleType.BUG); + .setName("name"); - assertThat(builder.severity()).isEqualTo("MAJOR"); - assertThat(builder.type()).isEqualTo(RuleType.BUG); assertThat(builder.name()).isEqualTo("name"); NewExternalRule rule = builder.build(); assertThat(rule.getName()).isEqualTo("name"); assertThat(rule.getPluginKey()).isEqualTo("repo"); - assertThat(rule.getSeverity()).isEqualTo("MAJOR"); - assertThat(rule.getType()).isEqualTo(RuleType.BUG); - } - - @Test - public void fail_if_type_is_not_set() { - exception.expect(IllegalStateException.class); - exception.expectMessage("'type' not expected to be null for an external rule"); - - new NewExternalRule.Builder() - .setKey(RuleKey.of("repo", "rule")) - .setSeverity("MAJOR") - .build(); } @Test @@ -68,8 +50,6 @@ public class NewExternalRuleTest { exception.expectMessage("'key' not expected to be null for an external rule"); new NewExternalRule.Builder() - .setSeverity("MAJOR") - .setType(RuleType.BUG) .build(); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryImplTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryImplTest.java index a3827e8f7ec..910cd12458b 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryImplTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryImplTest.java @@ -50,8 +50,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; import static org.mockito.internal.verification.VerificationModeFactory.times; -import static org.sonar.api.rule.Severity.BLOCKER; -import static org.sonar.api.rules.RuleType.BUG; public class RuleRepositoryImplTest { @@ -274,13 +272,11 @@ public class RuleRepositoryImplTest { underTest.insertNewExternalRuleIfAbsent(ruleKey, () -> new NewExternalRule.Builder() .setKey(ruleKey) .setPluginKey("eslint") - .setSeverity(BLOCKER) - .setType(BUG) .build()); assertThat(underTest.getByKey(ruleKey)).isNotNull(); assertThat(underTest.getByKey(ruleKey).getPluginKey()).isEqualTo("eslint"); - assertThat(underTest.getByKey(ruleKey).getType()).isEqualTo(BUG); + assertThat(underTest.getByKey(ruleKey).getType()).isNull(); RuleDao ruleDao = dbClient.ruleDao(); Optional ruleDefinitionDto = ruleDao.selectDefinitionByKey(dbClient.openSession(false), ruleKey); @@ -295,8 +291,6 @@ public class RuleRepositoryImplTest { underTest.insertNewExternalRuleIfAbsent(ruleKey, () -> new NewExternalRule.Builder() .setKey(ruleKey) .setPluginKey("eslint") - .setSeverity(BLOCKER) - .setType(BUG) .build()); underTest.persistNewExternalRules(db.getSession()); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/PersistExternalRulesStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/PersistExternalRulesStepTest.java index f834e616ee3..c265a91a82d 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/PersistExternalRulesStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/PersistExternalRulesStepTest.java @@ -39,8 +39,6 @@ import org.sonar.server.rule.index.RuleIndexDefinition; import org.sonar.server.rule.index.RuleIndexer; import static org.assertj.core.api.Assertions.assertThat; -import static org.sonar.api.rule.Severity.BLOCKER; -import static org.sonar.api.rules.RuleType.BUG; public class PersistExternalRulesStepTest extends BaseStepTest { @@ -57,7 +55,7 @@ public class PersistExternalRulesStepTest extends BaseStepTest { private RuleRepositoryImpl ruleRepository; @org.junit.Rule - public EsTester es = EsTester.create(); + public EsTester es = EsTester.create(); private RuleIndexer indexer = new RuleIndexer(es.client(), dbClient); private ExternalRuleCreator externalRuleCreator = new ExternalRuleCreator(dbClient, System2.INSTANCE, indexer); @@ -80,9 +78,7 @@ public class PersistExternalRulesStepTest extends BaseStepTest { ruleRepository.insertNewExternalRuleIfAbsent(ruleKey, () -> new NewExternalRule.Builder() .setKey(ruleKey) .setPluginKey("eslint") - .setSeverity(BLOCKER) .setName("eslint:no-cond-assign") - .setType(BUG) .build()); underTest.execute(); @@ -95,8 +91,8 @@ public class PersistExternalRulesStepTest extends BaseStepTest { assertThat(reloaded.getRuleKey()).isEqualTo("no-cond-assign"); assertThat(reloaded.getRepositoryKey()).isEqualTo("eslint"); assertThat(reloaded.isExternal()).isTrue(); - assertThat(reloaded.getType()).isEqualTo(2); - assertThat(reloaded.getSeverity()).isEqualTo(4); + assertThat(reloaded.getType()).isEqualTo(0); + assertThat(reloaded.getSeverity()).isNull(); assertThat(reloaded.getName()).isEqualTo("eslint:no-cond-assign"); assertThat(reloaded.getPluginKey()).isEqualTo("eslint"); @@ -111,8 +107,6 @@ public class PersistExternalRulesStepTest extends BaseStepTest { ruleRepository.insertNewExternalRuleIfAbsent(ruleKey, () -> new NewExternalRule.Builder() .setKey(ruleKey) .setPluginKey("eslint") - .setSeverity(BLOCKER) - .setType(BUG) .build()); underTest.execute(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/rule/ExternalRuleCreatorTest.java b/server/sonar-server/src/test/java/org/sonar/server/rule/ExternalRuleCreatorTest.java index 96d4bb8d633..ac55073f183 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/rule/ExternalRuleCreatorTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/rule/ExternalRuleCreatorTest.java @@ -30,7 +30,6 @@ import org.sonar.server.es.EsTester; import org.sonar.server.rule.index.RuleIndexer; import static org.assertj.core.api.Assertions.assertThat; -import static org.sonar.api.rules.RuleType.BUG; public class ExternalRuleCreatorTest { @@ -49,7 +48,6 @@ public class ExternalRuleCreatorTest { NewExternalRule externalRule = new NewExternalRule.Builder() .setKey(ruleKey) .setPluginKey("eslint") - .setType(BUG) .setName("name") .build(); diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/issue/NewExternalIssue.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/issue/NewExternalIssue.java index d2e55a999ee..ba9a4d7f3ec 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/issue/NewExternalIssue.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/issue/NewExternalIssue.java @@ -45,7 +45,7 @@ public interface NewExternalIssue { /** * Effort to fix the issue, in minutes. */ - NewExternalIssue remediationEffort(@Nullable Long effort); + NewExternalIssue remediationEffortMinutes(@Nullable Long effortInMinutes); /** * Set the severity of the issue. diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/issue/internal/DefaultExternalIssue.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/issue/internal/DefaultExternalIssue.java index 03b65866bc8..ee68be1d242 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/issue/internal/DefaultExternalIssue.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/issue/internal/DefaultExternalIssue.java @@ -45,7 +45,7 @@ public class DefaultExternalIssue extends AbstractDefaultIssue= 0, format("effort must be greater than or equal 0 (got %s)", effort)); this.effort = effort; return this; diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/batch/sensor/issue/internal/DefaultExternalIssueTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/batch/sensor/issue/internal/DefaultExternalIssueTest.java index 1176527f04c..079d4995f2b 100644 --- a/sonar-plugin-api/src/test/java/org/sonar/api/batch/sensor/issue/internal/DefaultExternalIssueTest.java +++ b/sonar-plugin-api/src/test/java/org/sonar/api/batch/sensor/issue/internal/DefaultExternalIssueTest.java @@ -51,7 +51,7 @@ public class DefaultExternalIssueTest { .at(inputFile.selectLine(1)) .message("Wrong way!")) .forRule(RuleKey.of("repo", "rule")) - .remediationEffort(10l) + .remediationEffortMinutes(10l) .type(RuleType.BUG) .severity(Severity.BLOCKER); @@ -77,7 +77,7 @@ public class DefaultExternalIssueTest { .at(inputFile.selectLine(1)) .message("Wrong way!")) .forRule(RuleKey.of("repo", "rule")) - .remediationEffort(10l) + .remediationEffortMinutes(10l) .severity(Severity.BLOCKER); exception.expect(IllegalStateException.class); @@ -93,7 +93,7 @@ public class DefaultExternalIssueTest { .on(mock(InputComponent.class)) .message("Wrong way!")) .forRule(RuleKey.of("repo", "rule")) - .remediationEffort(10l) + .remediationEffortMinutes(10l) .severity(Severity.BLOCKER); exception.expect(IllegalStateException.class); @@ -110,7 +110,7 @@ public class DefaultExternalIssueTest { .at(inputFile.selectLine(1)) .message("Wrong way!")) .forRule(RuleKey.of("repo", "rule")) - .remediationEffort(10l) + .remediationEffortMinutes(10l) .type(RuleType.BUG); exception.expect(IllegalStateException.class); 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 f484f0bd195..b68fa4c910f 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 @@ -58,6 +58,7 @@ 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)); NewIssueLocation primary = fillLocation(context, externalIssue.newLocation(), issue.primaryLocation); diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/ReportParser.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/ReportParser.java index 61c35a05eb8..80728310026 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/ReportParser.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/ReportParser.java @@ -108,6 +108,8 @@ public class ReportParser { String ruleId; String severity; String type; + @Nullable + Integer effortMinutes; Location primaryLocation; @Nullable Location[] secondaryLocations; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ModuleIssuesTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ModuleIssuesTest.java index 6309720339d..eba43f72564 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ModuleIssuesTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ModuleIssuesTest.java @@ -33,6 +33,7 @@ import org.sonar.api.batch.sensor.issue.internal.DefaultIssue; import org.sonar.api.batch.sensor.issue.internal.DefaultIssueLocation; import org.sonar.api.rule.RuleKey; import org.sonar.api.rule.Severity; +import org.sonar.api.rules.RuleType; import org.sonar.api.utils.MessageException; import org.sonar.scanner.protocol.output.ScannerReport; import org.sonar.scanner.report.ReportPublisher; @@ -154,6 +155,7 @@ public class ModuleIssuesTest { DefaultExternalIssue issue = new DefaultExternalIssue() .at(new DefaultIssueLocation().on(file).at(file.selectLine(3)).message("Foo")) + .type(RuleType.BUG) .forRule(SQUID_RULE_KEY) .severity(org.sonar.api.batch.rule.Severity.CRITICAL); -- 2.39.5