aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2015-11-18 09:55:05 +0100
committerJulien HENRY <julien.henry@sonarsource.com>2015-11-18 09:55:22 +0100
commitbc5a3713961f55ab88d3e344cd0980d5949534f6 (patch)
tree2cf4710f73842a382d09a675b2e7083f85150541
parent760d4ab222c40e06b1b4217ebcfe5789596b4044 (diff)
downloadsonarqube-bc5a3713961f55ab88d3e344cd0980d5949534f6.tar.gz
sonarqube-bc5a3713961f55ab88d3e344cd0980d5949534f6.zip
Add more medium tests for tasks
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/mediumtest/tasks/TasksMediumTest.java78
1 files changed, 78 insertions, 0 deletions
diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/tasks/TasksMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/tasks/TasksMediumTest.java
index 741c87ae4c3..0195a075fcd 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/tasks/TasksMediumTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/tasks/TasksMediumTest.java
@@ -20,10 +20,17 @@
package org.sonar.batch.mediumtest.tasks;
import com.google.common.collect.ImmutableMap;
+import java.util.Arrays;
+import java.util.List;
+import org.assertj.core.api.Condition;
import org.junit.After;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
+import org.sonar.api.SonarPlugin;
+import org.sonar.api.issue.action.Actions;
+import org.sonar.api.task.Task;
+import org.sonar.api.task.TaskDefinition;
import org.sonar.api.utils.MessageException;
import org.sonar.api.utils.log.LogTester;
import org.sonar.batch.bootstrap.MockHttpServer;
@@ -40,6 +47,7 @@ public class TasksMediumTest {
public LogTester logTester = new LogTester();
public BatchMediumTester tester = BatchMediumTester.builder()
+ .registerPlugin("faketask", new FakeTaskPlugin())
.build();
private MockHttpServer server = null;
@@ -57,6 +65,37 @@ public class TasksMediumTest {
}
@Test
+ public void listTasksIncludingBroken() throws Exception {
+ tester.start();
+ tester.newTask()
+ .properties(ImmutableMap.<String, String>builder()
+ .put("sonar.task", "list").build())
+ .start();
+
+ assertThat(logTester.logs()).haveExactly(1, new Condition<String>() {
+
+ @Override
+ public boolean matches(String value) {
+ return value.contains("Available tasks:") && value.contains("fake: Fake description") && value.contains("broken: Broken description");
+ }
+ });
+ }
+
+ @Test
+ public void runBroken() throws Exception {
+ tester.start();
+
+ thrown.expect(IllegalStateException.class);
+ thrown.expectMessage(
+ "Unable to load component class org.sonar.batch.mediumtest.tasks.TasksMediumTest$BrokenTask: org.sonar.batch.mediumtest.tasks.TasksMediumTest$BrokenTask has unsatisfied dependency 'class org.sonar.api.issue.action.Actions'");
+
+ tester.newTask()
+ .properties(ImmutableMap.<String, String>builder()
+ .put("sonar.task", "broken").build())
+ .start();
+ }
+
+ @Test
public void triggerViews() throws Exception {
startServer(200, "OK");
tester = BatchMediumTester.builder()
@@ -94,4 +133,43 @@ public class TasksMediumTest {
}
}
+ private static class FakeTaskPlugin extends SonarPlugin {
+
+ @Override
+ public List getExtensions() {
+ return Arrays.asList(FakeTask.DEF, FakeTask.class, BrokenTask.DEF, BrokenTask.class);
+ }
+
+ }
+
+ private static class FakeTask implements Task {
+
+ public static final TaskDefinition DEF = TaskDefinition.builder().key("fake").description("Fake description").taskClass(FakeTask.class).build();
+
+ @Override
+ public void execute() {
+ // TODO Auto-generated method stub
+
+ }
+
+ }
+
+ private static class BrokenTask implements Task {
+
+ public static final TaskDefinition DEF = TaskDefinition.builder().key("broken").description("Broken description").taskClass(BrokenTask.class).build();
+ private final Actions serverSideComponent;
+
+ public BrokenTask(Actions serverSideComponent) {
+ this.serverSideComponent = serverSideComponent;
+ }
+
+ @Override
+ public void execute() {
+ System.out.println(serverSideComponent.list());
+ ;
+
+ }
+
+ }
+
}