/*******************************************************************************
* Copyright (c) 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.hudson.tests.integration;
import java.util.Collections;
import java.util.List;
import junit.framework.TestCase;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.mylyn.builds.core.IBooleanParameterDefinition;
import org.eclipse.mylyn.builds.core.IBuildPlan;
import org.eclipse.mylyn.builds.core.IParameterDefinition;
import org.eclipse.mylyn.builds.core.spi.BuildPlanRequest;
import org.eclipse.mylyn.builds.core.spi.BuildServerBehaviour;
import org.eclipse.mylyn.builds.internal.core.BuildFactory;
import org.eclipse.mylyn.commons.repositories.core.RepositoryLocation;
import org.eclipse.mylyn.hudson.core.HudsonCore;
import org.eclipse.mylyn.hudson.tests.support.HudsonFixture;
import org.eclipse.mylyn.hudson.tests.support.HudsonHarness;
/**
* @author Steffen Pingel
*/
public class HudsonIntegrationTest extends TestCase {
private HudsonHarness harness;
@Override
protected void setUp() throws Exception {
harness = HudsonFixture.current().createHarness();
}
@Override
protected void tearDown() throws Exception {
harness.dispose();
}
public void testPlanParameters() throws Exception {
RepositoryLocation location = harness.getFixture().location();
BuildServerBehaviour behaviour = HudsonCore.createConnector(null).getBehaviour(location);
BuildPlanRequest request = new BuildPlanRequest(Collections.singletonList(harness.getPlanParameterized()));
List<IBuildPlan> plans = behaviour.getPlans(request, null);
assertEquals("Expected one plan, got: " + plans, 1, plans.size());
IBuildPlan plan = plans.get(0);
assertEquals(harness.getPlanParameterized(), plan.getName());
List<IParameterDefinition> parameters = plan.getParameterDefinitions();
IBooleanParameterDefinition booleanParameter = BuildFactory.eINSTANCE.createBooleanParameterDefinition();
booleanParameter.setName("Boolean Parameter");
booleanParameter.setDescription("Boolean Parameter Description.");
booleanParameter.setDefaultValue(true);
booleanParameter.setContainingBuildPlan(plan);
assertEObjectsEquals(booleanParameter, parameters.get(0));
}
private void assertEObjectsEquals(Object o1, Object o2) {
boolean equals = EcoreUtil.equals((EObject) o1, (EObject) o2);
if (!equals) {
// fail with meaningful message
assertEquals(o1.toString(), o2.toString());
}
}
}