diff options
author | Duarte Meneses <duarte.meneses@sonarsource.com> | 2015-11-05 14:14:35 +0100 |
---|---|---|
committer | Duarte Meneses <duarte.meneses@sonarsource.com> | 2015-11-09 16:58:03 +0100 |
commit | ae7efa83ddab2008efab798ef9b8b119009aca69 (patch) | |
tree | 20c7f4cec49de24f96c8ce09275767aa48f4db99 /sonar-batch/src/test | |
parent | f1b4428c014da7768d14bbd34cc322594b283bb4 (diff) | |
download | sonarqube-ae7efa83ddab2008efab798ef9b8b119009aca69.tar.gz sonarqube-ae7efa83ddab2008efab798ef9b8b119009aca69.zip |
SONAR-6978 Provide enhanced issue locations (start/end) offset in issues mode
Diffstat (limited to 'sonar-batch/src/test')
11 files changed, 129 insertions, 76 deletions
diff --git a/sonar-batch/src/test/java/org/sonar/batch/issue/DefaultIssueCallbackTest.java b/sonar-batch/src/test/java/org/sonar/batch/issue/DefaultIssueCallbackTest.java index de1b59fed36..ea8ca35d831 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/issue/DefaultIssueCallbackTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/issue/DefaultIssueCallbackTest.java @@ -21,6 +21,9 @@ package org.sonar.batch.issue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; + +import org.sonar.batch.issue.tracking.TrackedIssue; + import org.sonar.api.batch.rule.Rule; import org.sonar.api.rule.RuleKey; import org.sonar.batch.bootstrapper.IssueListener.Issue; @@ -32,13 +35,11 @@ import org.sonar.batch.repository.user.UserRepositoryLoader; import org.sonar.batch.bootstrapper.IssueListener; import org.junit.Before; import com.google.common.collect.ImmutableList; -import org.sonar.core.issue.DefaultIssue; import java.util.LinkedList; import java.util.List; import static org.mockito.Matchers.any; - import static org.assertj.core.api.Assertions.assertThat; import org.junit.Test; @@ -50,14 +51,14 @@ public class DefaultIssueCallbackTest { @Mock private Rules rules; - private DefaultIssue issue; + private TrackedIssue issue; @Before public void setUp() { MockitoAnnotations.initMocks(this); RuleKey ruleKey = RuleKey.of("repo", "key"); - issue = new DefaultIssue(); + issue = new TrackedIssue(); issue.setKey("key"); issue.setAssignee("user"); issue.setRuleKey(ruleKey); diff --git a/sonar-batch/src/test/java/org/sonar/batch/issue/DefaultProjectIssuesTest.java b/sonar-batch/src/test/java/org/sonar/batch/issue/DefaultProjectIssuesTest.java index 99c6d5f7100..c4af828349b 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/issue/DefaultProjectIssuesTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/issue/DefaultProjectIssuesTest.java @@ -19,6 +19,8 @@ */ package org.sonar.batch.issue; +import org.sonar.batch.issue.tracking.TrackedIssue; + import com.google.common.collect.Lists; import org.junit.Test; import org.sonar.api.issue.Issue; @@ -49,9 +51,9 @@ public class DefaultProjectIssuesTest { DefaultIssue issueOnRoot = new DefaultIssue().setKey("4").setRuleKey(SQUID_RULE_KEY).setSeverity(Severity.CRITICAL).setComponentKey("org.apache:struts"); DefaultIssue issueInRoot = new DefaultIssue().setKey("5").setRuleKey(SQUID_RULE_KEY).setSeverity(Severity.CRITICAL).setComponentKey("org.apache:struts:FileInRoot"); - when(cache.all()).thenReturn(Arrays.<DefaultIssue> asList( - issueOnRoot, issueInRoot, - issueOnModule, issueInModule, resolvedIssueInModule + when(cache.all()).thenReturn(Arrays.<TrackedIssue>asList( + toTrackedIssue(issueOnRoot), toTrackedIssue(issueInRoot), + toTrackedIssue(issueOnModule), toTrackedIssue(issueInModule), toTrackedIssue(resolvedIssueInModule) )); // unresolved issues @@ -61,4 +63,16 @@ public class DefaultProjectIssuesTest { List<Issue> resolvedIssues = Lists.newArrayList(projectIssues.resolvedIssues()); assertThat(resolvedIssues).containsOnly(resolvedIssueInModule); } + + private TrackedIssue toTrackedIssue(DefaultIssue issue) { + TrackedIssue trackedIssue = new TrackedIssue(); + + trackedIssue.setKey(issue.key()); + trackedIssue.setRuleKey(issue.ruleKey()); + trackedIssue.setComponentKey(issue.componentKey()); + trackedIssue.setSeverity(issue.severity()); + trackedIssue.setResolution(issue.resolution()); + + return trackedIssue; + } } diff --git a/sonar-batch/src/test/java/org/sonar/batch/issue/IssueCacheTest.java b/sonar-batch/src/test/java/org/sonar/batch/issue/IssueCacheTest.java index 18e90aff802..7d752856ff6 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/issue/IssueCacheTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/issue/IssueCacheTest.java @@ -19,19 +19,17 @@ */ package org.sonar.batch.issue; -import org.sonar.batch.index.AbstractCachesTest; +import org.sonar.batch.issue.tracking.TrackedIssue; +import org.sonar.batch.index.AbstractCachesTest; import com.google.common.base.Function; import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableList; import org.junit.Test; -import org.sonar.api.issue.Issue; -import org.sonar.core.issue.DefaultIssue; import org.sonar.api.rule.Severity; import javax.annotation.Nullable; -import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -42,28 +40,29 @@ public class IssueCacheTest extends AbstractCachesTest { @Test public void should_add_new_issue() { IssueCache cache = new IssueCache(caches); - DefaultIssue issue1 = new DefaultIssue().setKey("111").setComponentKey("org.struts.Action"); - DefaultIssue issue2 = new DefaultIssue().setKey("222").setComponentKey("org.struts.Action"); - DefaultIssue issue3 = new DefaultIssue().setKey("333").setComponentKey("org.struts.Filter").setTags(Arrays.asList("foo", "bar")); + TrackedIssue issue1 = createIssue("111", "org.struts.Action", null); + TrackedIssue issue2 = createIssue("222", "org.struts.Action", null); + TrackedIssue issue3 = createIssue("333", "org.struts.Filter", null); + issue3.setAssignee("foo"); cache.put(issue1).put(issue2).put(issue3); assertThat(issueKeys(cache.byComponent("org.struts.Action"))).containsOnly("111", "222"); assertThat(issueKeys(cache.byComponent("org.struts.Filter"))).containsOnly("333"); - assertThat(cache.byComponent("org.struts.Filter").iterator().next().tags()).containsOnly("foo", "bar"); + assertThat(cache.byComponent("org.struts.Filter").iterator().next().assignee()).isEqualTo("foo"); } @Test public void should_update_existing_issue() { IssueCache cache = new IssueCache(caches); - DefaultIssue issue = new DefaultIssue().setKey("111").setComponentKey("org.struts.Action").setSeverity(Severity.BLOCKER); + TrackedIssue issue = createIssue("111", "org.struts.Action", Severity.BLOCKER); cache.put(issue); issue.setSeverity(Severity.MINOR); cache.put(issue); - List<DefaultIssue> issues = ImmutableList.copyOf(cache.byComponent("org.struts.Action")); + List<TrackedIssue> issues = ImmutableList.copyOf(cache.byComponent("org.struts.Action")); assertThat(issues).hasSize(1); - Issue reloaded = issues.iterator().next(); + TrackedIssue reloaded = issues.iterator().next(); assertThat(reloaded.key()).isEqualTo("111"); assertThat(reloaded.severity()).isEqualTo(Severity.MINOR); } @@ -71,20 +70,29 @@ public class IssueCacheTest extends AbstractCachesTest { @Test public void should_get_all_issues() { IssueCache cache = new IssueCache(caches); - DefaultIssue issue1 = new DefaultIssue().setKey("111").setComponentKey("org.struts.Action").setSeverity(Severity.BLOCKER); - DefaultIssue issue2 = new DefaultIssue().setKey("222").setComponentKey("org.struts.Filter").setSeverity(Severity.INFO); + TrackedIssue issue1 = createIssue("111", "org.struts.Action", Severity.BLOCKER); + TrackedIssue issue2 = createIssue("222", "org.struts.Filter", Severity.INFO); cache.put(issue1).put(issue2); - List<DefaultIssue> issues = ImmutableList.copyOf(cache.all()); + List<TrackedIssue> issues = ImmutableList.copyOf(cache.all()); assertThat(issues).containsOnly(issue1, issue2); } - private Collection<String> issueKeys(Iterable<DefaultIssue> issues) { - return Collections2.transform(ImmutableList.copyOf(issues), new Function<DefaultIssue, String>() { + private Collection<String> issueKeys(Iterable<TrackedIssue> issues) { + return Collections2.transform(ImmutableList.copyOf(issues), new Function<TrackedIssue, String>() { @Override - public String apply(@Nullable DefaultIssue issue) { + public String apply(@Nullable TrackedIssue issue) { return issue.key(); } }); } + + private TrackedIssue createIssue(String key, String componentKey, String severity) { + TrackedIssue issue = new TrackedIssue(); + issue.setKey(key); + issue.setComponentKey(componentKey); + issue.setSeverity(severity); + + return issue; + } } diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/IssuesMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/IssuesMediumTest.java index 2226796cc40..80c35ec1286 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/IssuesMediumTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/IssuesMediumTest.java @@ -88,6 +88,10 @@ public class IssuesMediumTest { List<Issue> issues = result.issuesFor(result.inputFile("xources/hello/HelloJava.xoo")); assertThat(issues).hasSize(8 /* lines */); + + Issue issue = issues.get(0); + assertThat(issue.getTextRange().getStartLine()).isEqualTo(issue.getLine()); + assertThat(issue.getTextRange().getEndLine()).isEqualTo(issue.getLine()); } @Test diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/EmptyFileTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/EmptyFileTest.java index 586bba47896..42c092dc536 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/EmptyFileTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/EmptyFileTest.java @@ -19,8 +19,9 @@ */ package org.sonar.batch.mediumtest.issuesmode; -import org.apache.commons.io.filefilter.FileFilterUtils; +import org.sonar.batch.issue.tracking.TrackedIssue; +import org.apache.commons.io.filefilter.FileFilterUtils; import org.apache.commons.io.FileUtils; import org.sonar.xoo.rule.XooRulesDefinition; import com.google.common.collect.ImmutableMap; @@ -76,6 +77,10 @@ public class EmptyFileTest { .property("sonar.xoo.internalKey", "my/internal/key") .start(); + for(TrackedIssue i : result.trackedIssues()) { + System.out.println(i.startLine() + " " + i.message()); + } + assertThat(result.trackedIssues()).hasSize(11); } diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/IssueModeAndReportsMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/IssueModeAndReportsMediumTest.java index 0e0ee39b9e3..5916ff1a81e 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/IssueModeAndReportsMediumTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/IssueModeAndReportsMediumTest.java @@ -19,7 +19,10 @@ */ package org.sonar.batch.mediumtest.issuesmode; +import org.sonar.batch.issue.tracking.TrackedIssue; + import com.google.common.collect.ImmutableMap; + import java.io.File; import java.io.IOException; import java.text.ParseException; @@ -27,6 +30,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.LinkedList; import java.util.List; + import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.FileFilterUtils; @@ -35,7 +39,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.sonar.api.CoreProperties; -import org.sonar.api.issue.Issue; import org.sonar.api.utils.log.LogTester; import org.sonar.batch.bootstrapper.IssueListener; import org.sonar.batch.mediumtest.BatchMediumTester; @@ -45,7 +48,6 @@ import org.sonar.batch.protocol.input.BatchInput.ServerIssue; import org.sonar.batch.scan.report.ConsoleReport; import org.sonar.xoo.XooPlugin; import org.sonar.xoo.rule.XooRulesDefinition; - import static org.assertj.core.api.Assertions.assertThat; public class IssueModeAndReportsMediumTest { @@ -153,9 +155,10 @@ public class IssueModeAndReportsMediumTest { int newIssues = 0; int openIssues = 0; int resolvedIssue = 0; - for (Issue issue : result.trackedIssues()) { + for (TrackedIssue issue : result.trackedIssues()) { System.out - .println(issue.message() + " " + issue.key() + " " + issue.ruleKey() + " " + issue.isNew() + " " + issue.resolution() + " " + issue.componentKey() + " " + issue.line()); + .println(issue.message() + " " + issue.key() + " " + issue.ruleKey() + " " + issue.isNew() + " " + issue.resolution() + " " + issue.componentKey() + " " + + issue.startLine()); if (issue.isNew()) { newIssues++; } else if (issue.resolution() != null) { diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/ScanOnlyChangedTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/ScanOnlyChangedTest.java index 2141351e852..855d6b6c986 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/ScanOnlyChangedTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/ScanOnlyChangedTest.java @@ -19,6 +19,8 @@ */ package org.sonar.batch.mediumtest.issuesmode; +import org.sonar.batch.issue.tracking.TrackedIssue; + import org.assertj.core.api.Condition; import com.google.common.io.Resources; import org.sonar.batch.repository.FileData; @@ -37,7 +39,6 @@ import org.sonar.xoo.rule.XooRulesDefinition; import org.junit.rules.TemporaryFolder; import org.sonar.api.utils.log.LogTester; import org.junit.Test; -import org.sonar.api.issue.Issue; import org.sonar.batch.mediumtest.TaskResult; import java.io.File; @@ -178,9 +179,9 @@ public class ScanOnlyChangedTest { } private static void assertNumberIssuesOnFile(TaskResult result, final String fileNameEndsWith, int issues) { - assertThat(result.trackedIssues()).haveExactly(issues, new Condition<Issue>() { + assertThat(result.trackedIssues()).haveExactly(issues, new Condition<TrackedIssue>() { @Override - public boolean matches(Issue value) { + public boolean matches(TrackedIssue value) { return value.componentKey().endsWith(fileNameEndsWith); } }); @@ -190,9 +191,10 @@ public class ScanOnlyChangedTest { int newIssues = 0; int openIssues = 0; int resolvedIssue = 0; - for (Issue issue : result.trackedIssues()) { + for (TrackedIssue issue : result.trackedIssues()) { System.out - .println(issue.message() + " " + issue.key() + " " + issue.ruleKey() + " " + issue.isNew() + " " + issue.resolution() + " " + issue.componentKey() + " " + issue.line()); + .println(issue.message() + " " + issue.key() + " " + issue.ruleKey() + " " + issue.isNew() + " " + issue.resolution() + " " + issue.componentKey() + " " + + issue.startLine()); if (issue.isNew()) { newIssues++; } else if (issue.resolution() != null) { diff --git a/sonar-batch/src/test/java/org/sonar/batch/postjob/DefaultPostJobContextTest.java b/sonar-batch/src/test/java/org/sonar/batch/postjob/DefaultPostJobContextTest.java index a350ba4a952..fa3fb23b031 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/postjob/DefaultPostJobContextTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/postjob/DefaultPostJobContextTest.java @@ -19,7 +19,10 @@ */ package org.sonar.batch.postjob; +import org.sonar.batch.issue.tracking.TrackedIssue; + import java.util.Arrays; + import org.junit.Before; import org.junit.Test; import org.sonar.api.batch.AnalysisMode; @@ -30,8 +33,6 @@ import org.sonar.api.config.Settings; import org.sonar.api.resources.File; import org.sonar.batch.index.BatchComponentCache; import org.sonar.batch.issue.IssueCache; -import org.sonar.core.issue.DefaultIssue; - import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -58,12 +59,12 @@ public class DefaultPostJobContextTest { assertThat(context.settings()).isSameAs(settings); assertThat(context.analysisMode()).isSameAs(analysisMode); - DefaultIssue defaultIssue = new DefaultIssue(); + TrackedIssue defaultIssue = new TrackedIssue(); defaultIssue.setComponentKey("foo:src/Foo.php"); defaultIssue.setEffortToFix(2.0); defaultIssue.setNew(true); defaultIssue.setKey("xyz"); - defaultIssue.setLine(1); + defaultIssue.setStartLine(1); defaultIssue.setMessage("msg"); defaultIssue.setSeverity("BLOCKER"); when(issueCache.all()).thenReturn(Arrays.asList(defaultIssue)); diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/report/ConsoleReportTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/report/ConsoleReportTest.java index fc3355952c0..998192b7985 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/scan/report/ConsoleReportTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/scan/report/ConsoleReportTest.java @@ -19,13 +19,15 @@ */ package org.sonar.batch.scan.report; +import javax.annotation.Nullable; + +import org.sonar.batch.issue.tracking.TrackedIssue; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.internal.DefaultInputFile; import org.sonar.api.config.Settings; -import org.sonar.core.issue.DefaultIssue; import org.sonar.api.rule.Severity; import org.sonar.api.utils.log.LogTester; import org.sonar.batch.issue.IssueCache; @@ -68,7 +70,7 @@ public class ConsoleReportTest { public void testNoFile() { settings.setProperty(ConsoleReport.CONSOLE_REPORT_ENABLED_KEY, "true"); when(inputPathCache.allFiles()).thenReturn(Collections.<InputFile>emptyList()); - when(issueCache.all()).thenReturn(Collections.<DefaultIssue>emptyList()); + when(issueCache.all()).thenReturn(Collections.<TrackedIssue>emptyList()); report.execute(); assertThat(getReportLog()).isEqualTo( "\n\n------------- Issues Report -------------\n\n" + @@ -80,7 +82,7 @@ public class ConsoleReportTest { public void testNoNewIssue() { settings.setProperty(ConsoleReport.CONSOLE_REPORT_ENABLED_KEY, "true"); when(inputPathCache.allFiles()).thenReturn(Arrays.<InputFile>asList(new DefaultInputFile("foo", "src/Foo.php"))); - when(issueCache.all()).thenReturn(Arrays.asList(new DefaultIssue().setNew(false))); + when(issueCache.all()).thenReturn(Arrays.asList(createIssue(false, null))); report.execute(); assertThat(getReportLog()).isEqualTo( "\n\n------------- Issues Report -------------\n\n" + @@ -92,7 +94,7 @@ public class ConsoleReportTest { public void testOneNewIssue() { settings.setProperty(ConsoleReport.CONSOLE_REPORT_ENABLED_KEY, "true"); when(inputPathCache.allFiles()).thenReturn(Arrays.<InputFile>asList(new DefaultInputFile("foo", "src/Foo.php"))); - when(issueCache.all()).thenReturn(Arrays.asList(new DefaultIssue().setNew(true).setSeverity(Severity.BLOCKER))); + when(issueCache.all()).thenReturn(Arrays.asList(createIssue(true, Severity.BLOCKER))); report.execute(); assertThat(getReportLog()).isEqualTo( "\n\n------------- Issues Report -------------\n\n" + @@ -105,11 +107,12 @@ public class ConsoleReportTest { public void testOneNewIssuePerSeverity() { settings.setProperty(ConsoleReport.CONSOLE_REPORT_ENABLED_KEY, "true"); when(inputPathCache.allFiles()).thenReturn(Arrays.<InputFile>asList(new DefaultInputFile("foo", "src/Foo.php"))); - when(issueCache.all()).thenReturn(Arrays.asList(new DefaultIssue().setNew(true).setSeverity(Severity.BLOCKER), - new DefaultIssue().setNew(true).setSeverity(Severity.CRITICAL), - new DefaultIssue().setNew(true).setSeverity(Severity.MAJOR), - new DefaultIssue().setNew(true).setSeverity(Severity.MINOR), - new DefaultIssue().setNew(true).setSeverity(Severity.INFO))); + when(issueCache.all()).thenReturn(Arrays.asList( + createIssue(true, Severity.BLOCKER), + createIssue(true, Severity.CRITICAL), + createIssue(true, Severity.MAJOR), + createIssue(true, Severity.MINOR), + createIssue(true, Severity.INFO))); report.execute(); assertThat(getReportLog()).isEqualTo( "\n\n------------- Issues Report -------------\n\n" + @@ -131,4 +134,12 @@ public class ConsoleReportTest { throw new IllegalStateException("No console report"); } + private TrackedIssue createIssue(boolean isNew, @Nullable String severity) { + TrackedIssue issue = new TrackedIssue(); + issue.setNew(isNew); + issue.setSeverity(severity); + + return issue; + } + } diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/report/JSONReportTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/report/JSONReportTest.java index 92f8207baac..0cf45185cfe 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/scan/report/JSONReportTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/scan/report/JSONReportTest.java @@ -19,6 +19,8 @@ */ package org.sonar.batch.scan.report; +import org.sonar.batch.issue.tracking.TrackedIssue; + import com.google.common.collect.Lists; import java.io.File; @@ -49,7 +51,6 @@ import org.sonar.batch.issue.IssueCache; import org.sonar.batch.protocol.input.BatchInput; import org.sonar.batch.repository.user.UserRepositoryLoader; import org.sonar.batch.scan.filesystem.InputPathCache; -import org.sonar.core.issue.DefaultIssue; import org.sonar.test.JsonAssert; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; @@ -99,21 +100,23 @@ public class JSONReportTest { @Test public void should_write_json() throws Exception { - DefaultIssue issue = new DefaultIssue() - .setKey("200") - .setComponentKey("struts:src/main/java/org/apache/struts/Action.java") - .setRuleKey(RuleKey.of("squid", "AvoidCycles")) - .setMessage("There are 2 cycles") - .setSeverity("MINOR") - .setStatus(Issue.STATUS_OPEN) - .setResolution(null) - .setLine(1) - .setEffortToFix(3.14) - .setReporter("julien") - .setAssignee("simon") - .setCreationDate(SIMPLE_DATE_FORMAT.parse("2013-04-24")) - .setUpdateDate(SIMPLE_DATE_FORMAT.parse("2013-04-25")) - .setNew(false); + TrackedIssue issue = new TrackedIssue(); + issue.setKey("200"); + issue.setComponentKey("struts:src/main/java/org/apache/struts/Action.java"); + issue.setRuleKey(RuleKey.of("squid", "AvoidCycles")); + issue.setMessage("There are 2 cycles"); + issue.setSeverity("MINOR"); + issue.setStatus(Issue.STATUS_OPEN); + issue.setResolution(null); + issue.setStartLine(1); + issue.setEndLine(2); + issue.setStartLineOffset(3); + issue.setEndLineOffset(4); + issue.setEffortToFix(3.14); + issue.setReporter("julien"); + issue.setAssignee("simon"); + issue.setCreationDate(SIMPLE_DATE_FORMAT.parse("2013-04-24")); + issue.setNew(false); when(issueCache.all()).thenReturn(Lists.newArrayList(issue)); BatchInput.User user1 = BatchInput.User.newBuilder().setLogin("julien").setName("Julien").build(); BatchInput.User user2 = BatchInput.User.newBuilder().setLogin("simon").setName("Simon").build(); @@ -129,16 +132,14 @@ public class JSONReportTest { @Test public void should_exclude_resolved_issues() throws Exception { RuleKey ruleKey = RuleKey.of("squid", "AvoidCycles"); - DefaultIssue issue = new DefaultIssue() - .setKey("200") - .setComponentKey("struts:src/main/java/org/apache/struts/Action.java") - .setRuleKey(ruleKey) - .setStatus(Issue.STATUS_CLOSED) - .setResolution(Issue.RESOLUTION_FIXED) - .setCreationDate(SIMPLE_DATE_FORMAT.parse("2013-04-24")) - .setUpdateDate(SIMPLE_DATE_FORMAT.parse("2013-04-25")) - .setCloseDate(SIMPLE_DATE_FORMAT.parse("2013-04-26")) - .setNew(false); + TrackedIssue issue = new TrackedIssue(); + issue.setKey("200"); + issue.setComponentKey("struts:src/main/java/org/apache/struts/Action.java"); + issue.setRuleKey(ruleKey); + issue.setStatus(Issue.STATUS_CLOSED); + issue.setResolution(Issue.RESOLUTION_FIXED); + issue.setCreationDate(SIMPLE_DATE_FORMAT.parse("2013-04-24")); + issue.setNew(false); when(issueCache.all()).thenReturn(Lists.newArrayList(issue)); StringWriter writer = new StringWriter(); @@ -149,7 +150,7 @@ public class JSONReportTest { @Test public void should_ignore_components_without_issue() { - when(issueCache.all()).thenReturn(Collections.<DefaultIssue>emptyList()); + when(issueCache.all()).thenReturn(Collections.<TrackedIssue>emptyList()); StringWriter writer = new StringWriter(); jsonReport.writeJson(writer); @@ -172,7 +173,7 @@ public class JSONReportTest { File workDir = temp.newFolder("sonar"); fs.setWorkDir(workDir); - when(issueCache.all()).thenReturn(Collections.<DefaultIssue>emptyList()); + when(issueCache.all()).thenReturn(Collections.<TrackedIssue>emptyList()); settings.setProperty("sonar.report.export.path", "output.json"); diff --git a/sonar-batch/src/test/resources/org/sonar/batch/scan/report/JSONReportTest/report.json b/sonar-batch/src/test/resources/org/sonar/batch/scan/report/JSONReportTest/report.json index 91c1e3a3eac..d05703e5d30 100644 --- a/sonar-batch/src/test/resources/org/sonar/batch/scan/report/JSONReportTest/report.json +++ b/sonar-batch/src/test/resources/org/sonar/batch/scan/report/JSONReportTest/report.json @@ -4,7 +4,10 @@ { "key": "200", "component": "struts:src/main/java/org/apache/struts/Action.java", - "line": 1, + "startLine": 1, + "startOffset": 3, + "endLine": 2, + "endOffset": 4, "message": "There are 2 cycles", "severity": "MINOR", "rule": "squid:AvoidCycles", |