/******************************************************************************* * Copyright (c) 2011, 2012 Tasktop Technologies and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Tasktop Technologies - initial API and implementation *******************************************************************************/ package org.eclipse.mylyn.builds.tests.support; import java.util.Arrays; import java.util.List; import org.eclipse.mylyn.builds.core.BuildState; import org.eclipse.mylyn.builds.core.BuildStatus; import org.eclipse.mylyn.builds.core.IBuild; import org.eclipse.mylyn.builds.core.IBuildFactory; import org.eclipse.mylyn.builds.core.IBuildModel; import org.eclipse.mylyn.builds.core.IBuildPlan; import org.eclipse.mylyn.builds.core.IBuildServer; import org.eclipse.mylyn.builds.internal.core.Build; import org.eclipse.mylyn.builds.internal.core.BuildModel; import org.eclipse.mylyn.builds.internal.core.BuildServer; import org.eclipse.mylyn.builds.ui.BuildsUi; import org.eclipse.mylyn.commons.repositories.core.RepositoryLocation; import org.eclipse.mylyn.internal.commons.repositories.core.InMemoryCredentialsStore; /** * @author Steffen Pingel */ public class BuildHarness { private final BuildModel model; private final MockOperationService operationService; private final MockBuildLoader loader; private BuildServer server; public BuildHarness(IBuildModel model) { this.model = (BuildModel) model; loader = new MockBuildLoader(); operationService = new MockOperationService(loader.getRealm()); } public BuildHarness() { this(BuildsUi.getModel()); } public void dispose() { getModel().getServers().clear(); } public BuildModel getModel() { return model; } public MockOperationService getOperationService() { return operationService; } public BuildServer createServer() { server = (BuildServer) IBuildFactory.INSTANCE.createBuildServer(); server.setConnectorKind(MockBuildConnector.KIND); server.setLoader(loader); RepositoryLocation location = new RepositoryLocation(); server.setLocation(location); location.setCredentialsStore(new InMemoryCredentialsStore()); location.setUrl("http://ci.mylyn.org/"); getModel().getServers().add(server); return server; } public IBuild createBuild() { Build build = (Build) IBuildFactory.INSTANCE.createBuild(); return build; } public List<IBuildPlan> createPlans() { IBuildPlan failingPlan = IBuildFactory.INSTANCE.createBuildPlan(); failingPlan.setId("1"); failingPlan.setName("Failing Build Plan"); failingPlan.setState(BuildState.RUNNING); failingPlan.setStatus(BuildStatus.FAILED); failingPlan.setHealth(15); IBuildPlan childPlan1 = IBuildFactory.INSTANCE.createBuildPlan(); childPlan1.setId("1.1"); childPlan1.setName("Stopped Child Build Plan"); childPlan1.setState(BuildState.STOPPED); childPlan1.setStatus(BuildStatus.FAILED); //failingPlan.getChildren().add(childPlan1); IBuildPlan childPlan2 = IBuildFactory.INSTANCE.createBuildPlan(); childPlan2.setId("1.2"); childPlan2.setName("Running Child Build Plan"); childPlan2.setState(BuildState.STOPPED); childPlan2.setStatus(BuildStatus.FAILED); childPlan2.setHealth(55); //failingPlan.getChildren().add(childPlan2); IBuildPlan succeedingPlan = IBuildFactory.INSTANCE.createBuildPlan(); succeedingPlan.setId("2"); succeedingPlan.setName("Succeeding Build Plan"); succeedingPlan.setState(BuildState.STOPPED); succeedingPlan.setStatus(BuildStatus.SUCCESS); succeedingPlan.setInfo("12 tests passing"); succeedingPlan.setHealth(89); return Arrays.asList(failingPlan, childPlan1, childPlan2, succeedingPlan); } public IBuildPlan createBuildPlan() { IBuildPlan plan = IBuildFactory.INSTANCE.createBuildPlan(); plan.setId("plan"); plan.setServer(getServer()); getModel().getPlans().add(plan); return plan; } public IBuildServer getServer() { return server; } }