| /******************************************************************************* |
| * Copyright (c) 2016 Obeo. |
| * 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: |
| * Obeo - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.emf.compare.ide.ui.tests.git.framework; |
| |
| import org.eclipse.emf.compare.ide.ui.tests.framework.AbstractCompareTestRunner; |
| import org.eclipse.emf.compare.ide.ui.tests.framework.EMFCompareTestConfiguration; |
| import org.eclipse.emf.compare.ide.ui.tests.framework.ResolutionStrategyID; |
| import org.eclipse.emf.compare.ide.ui.tests.git.framework.annotations.GitMergeStrategy; |
| import org.eclipse.emf.compare.ide.ui.tests.git.framework.internal.GitTestCaseJUnitBlock; |
| import org.junit.runners.model.InitializationError; |
| |
| /** |
| * The compare EGit specific runner. |
| * |
| * @author <a href="mailto:mathieu.cartaud@obeo.fr">Mathieu Cartaud</a> |
| */ |
| public class GitTestRunner extends AbstractCompareTestRunner { |
| |
| /** Default merge strategy if the @MergeStrategy annotation is not used. */ |
| private static GitMergeStrategyID defaultMergeStrategy = GitMergeStrategyID.MODEL_RECURSIVE; |
| |
| /** |
| * Constructor. |
| * |
| * @param testClass |
| * The class to test |
| * @throws InitializationError |
| * If the test cannot be created |
| */ |
| public GitTestRunner(Class<?> testClass) throws InitializationError { |
| super(testClass); |
| } |
| |
| @Override |
| public void createRunner(Class<?> testClass, ResolutionStrategyID resolutionStrategy, |
| EMFCompareTestConfiguration configuration) throws InitializationError { |
| GitMergeStrategy mStrategy = getTestClass().getAnnotation(GitMergeStrategy.class); |
| final GitMergeStrategyID mergeStrategy; |
| if (mStrategy == null) { |
| mergeStrategy = defaultMergeStrategy; |
| } else { |
| mergeStrategy = mStrategy.value(); |
| } |
| runners.add(new GitTestCaseJUnitBlock(testClass, resolutionStrategy, configuration, mergeStrategy)); |
| |
| } |
| |
| } |