blob: 8e6a76291200b5e57aa904917204d2b757888ed1 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2016, 2019 Chalmers | University of Gothenburg, rt-labs and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
* Chalmers | University of Gothenburg - additional features, updated API
*******************************************************************************/
package org.eclipse.capra.testsuite;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.Collection;
import org.eclipse.capra.core.handlers.IArtifactHandler;
import org.eclipse.capra.core.handlers.PriorityHandler;
import org.eclipse.capra.core.helpers.ExtensionPointHelper;
import org.eclipse.capra.handler.hudson.BuildElementHandler;
import org.eclipse.capra.handler.hudson.TestElementHandler;
import org.eclipse.mylyn.builds.core.IBuildElement;
import org.eclipse.mylyn.builds.core.ITestCase;
import org.eclipse.mylyn.builds.internal.core.BuildFactory;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class TestDefaultPriorityHandler {
private IArtifactHandler<?> emfHandler;
private IArtifactHandler<?> buildElementHandler;
private IArtifactHandler<?> testElementHandler;
private PriorityHandler priorityHandler;
@SuppressWarnings("restriction")
private IBuildElement buildElement = BuildFactory.eINSTANCE.createBuildPlan();
@SuppressWarnings("restriction")
private ITestCase testCase = BuildFactory.eINSTANCE.createTestCase();
@Before
public void setup() {
priorityHandler = ExtensionPointHelper.getPriorityHandler().get();
emfHandler = ExtensionPointHelper.getArtifactHandler("org.eclipse.capra.handler.emf.EMFHandler").get();
testElementHandler = ExtensionPointHelper
.getArtifactHandler("org.eclipse.capra.handler.hudson.TestElementHandler").get();
buildElementHandler = ExtensionPointHelper
.getArtifactHandler("org.eclipse.capra.handler.hudson.BuildElementHandler").get();
}
@Test
public void testCorrectSelection() {
assertEquals(BuildElementHandler.class, priorityHandler
.getSelectedHandler(ExtensionPointHelper.getArtifactHandlers(), buildElement).getClass());
assertEquals(TestElementHandler.class,
priorityHandler.getSelectedHandler(ExtensionPointHelper.getArtifactHandlers(), testCase).getClass());
}
@Test
public void testPrioritiesOrder() {
Collection<IArtifactHandler<?>> handlers = new ArrayList<>();
handlers.add(emfHandler);
handlers.add(buildElementHandler);
// First, without the testCaseHandler, test case is picked up by EMF (fallback)
Assert.assertEquals(buildElementHandler, priorityHandler.getSelectedHandler(handlers, buildElement));
Assert.assertEquals(emfHandler, priorityHandler.getSelectedHandler(handlers, testCase));
// Now, we add the testCaseHandler and we should see a change in priority
handlers.add(testElementHandler);
Assert.assertEquals(testElementHandler, priorityHandler.getSelectedHandler(handlers, testCase));
// Turn order around
handlers.clear();
handlers.add(testElementHandler);
handlers.add(buildElementHandler);
handlers.add(emfHandler);
Assert.assertEquals(buildElementHandler, priorityHandler.getSelectedHandler(handlers, buildElement));
Assert.assertEquals(testElementHandler, priorityHandler.getSelectedHandler(handlers, testCase));
}
}