aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-runner-api/src/test/java
diff options
context:
space:
mode:
authorDuarte Meneses <duarte.meneses@sonarsource.com>2015-07-30 10:24:11 +0200
committerDuarte Meneses <duarte.meneses@sonarsource.com>2015-07-30 15:40:57 +0200
commit6ae87caef4147e53cb58866c99ce978edd4d3b9c (patch)
tree64547a7eb804472e9fa030aec02c157b1471e98b /sonar-runner-api/src/test/java
parent5ca7bdca3fcb34463b360e5a6a98237e78655af4 (diff)
downloadsonar-scanner-cli-6ae87caef4147e53cb58866c99ce978edd4d3b9c.tar.gz
sonar-scanner-cli-6ae87caef4147e53cb58866c99ce978edd4d3b9c.zip
SONARUNNER-143 New API to retrieve issues produced by the analysis
Diffstat (limited to 'sonar-runner-api/src/test/java')
-rw-r--r--sonar-runner-api/src/test/java/org/sonar/runner/api/EmbeddedRunnerTest.java41
-rw-r--r--sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedLauncherFactoryTest.java11
2 files changed, 50 insertions, 2 deletions
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/api/EmbeddedRunnerTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/api/EmbeddedRunnerTest.java
index e838381..05df62c 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/api/EmbeddedRunnerTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/api/EmbeddedRunnerTest.java
@@ -19,11 +19,17 @@
*/
package org.sonar.runner.api;
+import org.sonar.runner.api.EmbeddedRunner.IssueListenerAdapter;
+
+import java.awt.geom.IllegalPathStateException;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.Charset;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Properties;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -32,7 +38,6 @@ import org.mockito.ArgumentMatcher;
import org.sonar.home.cache.Logger;
import org.sonar.runner.batch.IsolatedLauncher;
import org.sonar.runner.impl.IsolatedLauncherFactory;
-
import static org.fest.assertions.Assertions.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.argThat;
@@ -156,6 +161,40 @@ public class EmbeddedRunnerTest {
}
@Test
+ public void test_issue_adapter() {
+ final List<Issue> issuesRecorded = new LinkedList<>();
+ IssueListener apiIssueListener = new IssueListener() {
+ @Override
+ public void handle(Issue issue) {
+ issuesRecorded.add(issue);
+ }
+ };
+ IssueListenerAdapter adapter = new IssueListenerAdapter(apiIssueListener);
+
+ org.sonar.runner.batch.IssueListener.Issue batchIssue = new org.sonar.runner.batch.IssueListener.Issue();
+ batchIssue.setAssignee("assignee");
+ adapter.handle(batchIssue);
+
+ assertThat(issuesRecorded).hasSize(1);
+ assertThat(issuesRecorded.get(0).getAssignee()).isEqualTo("assignee");
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void reject_issue_listener_old_version() {
+ when(launcher.getVersion()).thenReturn("4.5");
+ launch_with_issue_listener();
+ }
+
+ @Test
+ public void launch_with_issue_listener() {
+ runner.start();
+ runner.runAnalysis(mock(Properties.class), mock(IssueListener.class));
+ runner.stop();
+
+ verify(launcher).execute(any(Properties.class), any(org.sonar.runner.batch.IssueListener.class));
+ }
+
+ @Test
public void should_launch_batch_analysisProperties() {
runner.setGlobalProperty("sonar.projectKey", "foo");
runner.start();
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedLauncherFactoryTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedLauncherFactoryTest.java
index a186d72..957d840 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedLauncherFactoryTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedLauncherFactoryTest.java
@@ -19,13 +19,15 @@
*/
package org.sonar.runner.impl;
+import org.sonar.runner.batch.IssueListener;
+
import java.util.Properties;
+
import org.junit.Before;
import org.junit.Test;
import org.sonar.home.cache.Logger;
import org.sonar.runner.batch.IsolatedLauncher;
import org.sonar.runner.batch.LogOutput;
-
import static org.fest.assertions.Fail.fail;
import static org.mockito.Mockito.mock;
@@ -55,6 +57,7 @@ public class IsolatedLauncherFactoryTest {
public static class FakeIsolatedLauncher implements IsolatedLauncher {
public static Properties props = null;
+ public static IssueListener listener = null;
@Override
public void start(Properties properties, LogOutput logger) {
@@ -77,5 +80,11 @@ public class IsolatedLauncherFactoryTest {
public String getVersion() {
return null;
}
+
+ @Override
+ public void execute(Properties properties, IssueListener listener) {
+ FakeIsolatedLauncher.props = properties;
+ FakeIsolatedLauncher.listener = listener;
+ }
}
}