Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.mylyn.hudson.core/src/org/eclipse/mylyn/internal/hudson/core/HudsonServerBehaviour.java96
-rw-r--r--org.eclipse.mylyn.hudson.tests/src/org/eclipse/mylyn/hudson/tests/core/HudsonServerBehaviourTest.java62
2 files changed, 120 insertions, 38 deletions
diff --git a/org.eclipse.mylyn.hudson.core/src/org/eclipse/mylyn/internal/hudson/core/HudsonServerBehaviour.java b/org.eclipse.mylyn.hudson.core/src/org/eclipse/mylyn/internal/hudson/core/HudsonServerBehaviour.java
index 23c83392..69c86019 100644
--- a/org.eclipse.mylyn.hudson.core/src/org/eclipse/mylyn/internal/hudson/core/HudsonServerBehaviour.java
+++ b/org.eclipse.mylyn.hudson.core/src/org/eclipse/mylyn/internal/hudson/core/HudsonServerBehaviour.java
@@ -841,46 +841,66 @@ public class HudsonServerBehaviour extends BuildServerBehaviour {
}
protected void updateStateAndStatus(HudsonModelJob job, IBuildPlan plan) {
- if (job.getColor().equals(HudsonModelBallColor.BLUE) || job.getColor().equals(HudsonModelBallColor.GREEN)) {
- plan.setStatus(BuildStatus.SUCCESS);
- plan.setState(BuildState.STOPPED);
- } else if (job.getColor().equals(HudsonModelBallColor.BLUE_ANIME)
- || job.getColor().equals(HudsonModelBallColor.GREEN_ANIME)) {
- plan.setStatus(BuildStatus.SUCCESS);
- plan.setState(BuildState.RUNNING);
- } else if (job.getColor().equals(HudsonModelBallColor.RED)) {
- plan.setStatus(BuildStatus.FAILED);
- plan.setState(BuildState.STOPPED);
- } else if (job.getColor().equals(HudsonModelBallColor.RED_ANIME)) {
- plan.setStatus(BuildStatus.FAILED);
- plan.setState(BuildState.RUNNING);
- } else if (job.getColor().equals(HudsonModelBallColor.YELLOW)) {
- plan.setStatus(BuildStatus.UNSTABLE);
- plan.setState(BuildState.STOPPED);
- } else if (job.getColor().equals(HudsonModelBallColor.YELLOW_ANIME)) {
- plan.setStatus(BuildStatus.UNSTABLE);
- plan.setState(BuildState.RUNNING);
- } else if (job.getColor().equals(HudsonModelBallColor.GREY)) {
- plan.setStatus(BuildStatus.DISABLED);
- plan.setState(BuildState.STOPPED);
- } else if (job.getColor().equals(HudsonModelBallColor.GREY_ANIME)) {
- plan.setStatus(BuildStatus.DISABLED);
- plan.setState(BuildState.RUNNING);
- } else if (job.getColor().equals(HudsonModelBallColor.DISABLED)) {
- plan.setStatus(BuildStatus.DISABLED);
- plan.setState(BuildState.STOPPED);
- } else if (job.getColor().equals(HudsonModelBallColor.DISABLED_ANIME)) {
- plan.setStatus(BuildStatus.DISABLED);
- plan.setState(BuildState.RUNNING);
- } else if (job.getColor().equals(HudsonModelBallColor.ABORTED)) {
- plan.setStatus(BuildStatus.ABORTED);
- plan.setState(BuildState.STOPPED);
- } else if (job.getColor().equals(HudsonModelBallColor.ABORTED_ANIME)) {
- plan.setStatus(BuildStatus.ABORTED);
- plan.setState(BuildState.RUNNING);
- } else {
+ HudsonModelBallColor color = job.getColor();
+ if (color == null) {
plan.setStatus(null);
plan.setState(null);
+ } else {
+ switch (color) {
+ case BLUE:
+ case GREEN:
+ plan.setStatus(BuildStatus.SUCCESS);
+ plan.setState(BuildState.STOPPED);
+ break;
+ case BLUE_ANIME:
+ case GREEN_ANIME:
+ plan.setStatus(BuildStatus.SUCCESS);
+ plan.setState(BuildState.RUNNING);
+ break;
+ case RED:
+ plan.setStatus(BuildStatus.FAILED);
+ plan.setState(BuildState.STOPPED);
+ break;
+ case RED_ANIME:
+ plan.setStatus(BuildStatus.FAILED);
+ plan.setState(BuildState.RUNNING);
+ break;
+ case YELLOW:
+ plan.setStatus(BuildStatus.UNSTABLE);
+ plan.setState(BuildState.STOPPED);
+ break;
+ case YELLOW_ANIME:
+ plan.setStatus(BuildStatus.UNSTABLE);
+ plan.setState(BuildState.RUNNING);
+ break;
+ case GREY:
+ plan.setStatus(BuildStatus.DISABLED);
+ plan.setState(BuildState.STOPPED);
+ break;
+ case GREY_ANIME:
+ plan.setStatus(BuildStatus.DISABLED);
+ plan.setState(BuildState.RUNNING);
+ break;
+ case DISABLED:
+ plan.setStatus(BuildStatus.DISABLED);
+ plan.setState(BuildState.STOPPED);
+ break;
+ case DISABLED_ANIME:
+ plan.setStatus(BuildStatus.DISABLED);
+ plan.setState(BuildState.RUNNING);
+ break;
+ case ABORTED:
+ plan.setStatus(BuildStatus.ABORTED);
+ plan.setState(BuildState.STOPPED);
+ break;
+ case ABORTED_ANIME:
+ plan.setStatus(BuildStatus.ABORTED);
+ plan.setState(BuildState.RUNNING);
+ break;
+ default:
+ plan.setStatus(null);
+ plan.setState(null);
+ }
}
EnumSet<BuildState> flags = EnumSet.noneOf(BuildState.class);
diff --git a/org.eclipse.mylyn.hudson.tests/src/org/eclipse/mylyn/hudson/tests/core/HudsonServerBehaviourTest.java b/org.eclipse.mylyn.hudson.tests/src/org/eclipse/mylyn/hudson/tests/core/HudsonServerBehaviourTest.java
index c5e6a788..6f29fd55 100644
--- a/org.eclipse.mylyn.hudson.tests/src/org/eclipse/mylyn/hudson/tests/core/HudsonServerBehaviourTest.java
+++ b/org.eclipse.mylyn.hudson.tests/src/org/eclipse/mylyn/hudson/tests/core/HudsonServerBehaviourTest.java
@@ -11,8 +11,13 @@
package org.eclipse.mylyn.hudson.tests.core;
+import java.util.HashSet;
+import java.util.Set;
+
import junit.framework.TestCase;
+import org.eclipse.mylyn.builds.core.BuildState;
+import org.eclipse.mylyn.builds.core.IBuildPlan;
import org.eclipse.mylyn.commons.repositories.core.RepositoryLocation;
import org.eclipse.mylyn.internal.hudson.core.HudsonServerBehaviour;
import org.eclipse.mylyn.internal.hudson.core.client.HudsonConfigurationCache;
@@ -44,4 +49,61 @@ public class HudsonServerBehaviourTest extends TestCase {
assertEquals(80, behaviour.parseJob(job).getHealth());
}
+ public void testParseJobNoColor() throws Exception {
+ HudsonServerBehaviour behaviour = new HudsonServerBehaviour(new RepositoryLocation(),
+ new HudsonConfigurationCache());
+ HudsonModelJob job = new HudsonModelJob();
+
+ IBuildPlan buildPlan = behaviour.parseJob(job);
+
+ assertNull(buildPlan.getState());
+ assertNull(buildPlan.getStatus());
+ }
+
+ public void testParseJobRunningColor() throws Exception {
+ HudsonServerBehaviour behaviour = new HudsonServerBehaviour(new RepositoryLocation(),
+ new HudsonConfigurationCache());
+ HudsonModelJob job = new HudsonModelJob();
+
+ for (HudsonModelBallColor color : getRunningColors()) {
+ job.setColor(color);
+ IBuildPlan buildPlan = behaviour.parseJob(job);
+
+ assertEquals(BuildState.RUNNING, buildPlan.getState());
+ }
+ }
+
+ public void testParseJobStoppedColor() throws Exception {
+ HudsonServerBehaviour behaviour = new HudsonServerBehaviour(new RepositoryLocation(),
+ new HudsonConfigurationCache());
+ HudsonModelJob job = new HudsonModelJob();
+
+ for (HudsonModelBallColor color : getStoppedColors()) {
+ job.setColor(color);
+ IBuildPlan buildPlan = behaviour.parseJob(job);
+
+ assertEquals(BuildState.STOPPED, buildPlan.getState());
+ }
+ }
+
+ private Set<HudsonModelBallColor> getRunningColors() {
+ Set<HudsonModelBallColor> result = new HashSet<HudsonModelBallColor>();
+ for (HudsonModelBallColor color : HudsonModelBallColor.values()) {
+ if (color.value().endsWith("_anime")) {
+ result.add(color);
+ }
+ }
+ return result;
+ }
+
+ private Set<HudsonModelBallColor> getStoppedColors() {
+ Set<HudsonModelBallColor> result = new HashSet<HudsonModelBallColor>();
+ for (HudsonModelBallColor color : HudsonModelBallColor.values()) {
+ if (!color.value().endsWith("_anime")) {
+ result.add(color);
+ }
+ }
+ return result;
+ }
+
}

Back to the top