summaryrefslogtreecommitdiffstats
path: root/sonar-batch/src/test
diff options
context:
space:
mode:
authorDuarte Meneses <duarte.meneses@sonarsource.com>2015-11-05 14:14:35 +0100
committerDuarte Meneses <duarte.meneses@sonarsource.com>2015-11-09 16:58:03 +0100
commitae7efa83ddab2008efab798ef9b8b119009aca69 (patch)
tree20c7f4cec49de24f96c8ce09275767aa48f4db99 /sonar-batch/src/test
parentf1b4428c014da7768d14bbd34cc322594b283bb4 (diff)
downloadsonarqube-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')
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/issue/DefaultIssueCallbackTest.java9
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/issue/DefaultProjectIssuesTest.java20
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/issue/IssueCacheTest.java42
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/IssuesMediumTest.java4
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/EmptyFileTest.java7
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/IssueModeAndReportsMediumTest.java11
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/mediumtest/issuesmode/ScanOnlyChangedTest.java12
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/postjob/DefaultPostJobContextTest.java9
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/scan/report/ConsoleReportTest.java29
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/scan/report/JSONReportTest.java57
-rw-r--r--sonar-batch/src/test/resources/org/sonar/batch/scan/report/JSONReportTest/report.json5
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",