/******************************************************************************* * Copyright (c) 2010, 2011 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.mylyn.docs.intent.client.ui.test.suite; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import junit.textui.TestRunner; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.compare.ChangeEditorUpdateTest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.compare.SimpleOrderTests; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.demo.editor.CompletionTest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.externalparsers.ExternalParsersTest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.hyperlink.IntentHyperLinkDetetectorTest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.java.JavaResourceFactoryTest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.project.ProjectTest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.refresher.RefresherTest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.repository.IntentURITest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.scenario.CompilerNotificationsTest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.scenario.ExternalChangesTest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.scenario.ExternalContentReferencesTest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.scenario.IntentAbstractResourceTest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.scenario.IntentDocumentationUpdateDoesNotCauseResolvingIssuesTest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.scenario.IntentProjectReopeningTest; import org.eclipse.mylyn.docs.intent.client.ui.test.unit.synchronizer.SynchronizerTest; /** * This suite will launch all tests requiring to launch an Intent runtime. * * @author <a href="mailto:alex.lagarde@obeo.fr">Alex Lagarde</a> * @author <a href="mailto:william.piers@obeo.fr">William Piers</a> */ public class IntentPluginTestSuite extends TestCase { /** * Launches the collaborative test suite. * * @param args * the arguments */ public static void main(String[] args) { TestRunner.run(suite()); } /** * Creates the {@link junit.framework.TestSuite TestSuite} for all Intent UI tests. * * @return The test suite containing all intent ui tests */ public static Test suite() { final TestSuite suite = new TestSuite("Intent Global TestSuite"); suite.addTest(comparisonSuite()); final TestSuite uiTestSuite = new TestSuite("Intent Plugin Tests"); uiTestSuite.addTest(uiBasicSuite()); uiTestSuite.addTest(uiScenarioSuite()); uiTestSuite.addTest(uiDemoSuite()); uiTestSuite.addTest(uiUpdateSuite()); suite.addTest(uiTestSuite); suite.addTest(cdoSuite()); suite.addTest(bridgesSuite()); return suite; } /** * CDO related test Suite. * * @return the suite */ private static TestSuite cdoSuite() { final TestSuite cdoSuite = new TestSuite("CDO integration tests"); // cdoSuite.addTestSuite(CDOIntegrationTest.class); // TODO reactivate when build permgen fixed return cdoSuite; } /** * Match & merge Tests. * * @return the suite */ private static TestSuite comparisonSuite() { final TestSuite compareSuite = new TestSuite("Intent match and merge tests"); // compareSuite.addTestSuite(IntentMatchEngineTests.class); // TODO reactivate when match stable return compareSuite; } /** * Core tests: all tests that test a technical concern (emf compare behavior, project lifecycle...). * * @return the suite */ private static TestSuite uiBasicSuite() { final TestSuite basicTestSuite = new TestSuite("Technical tests"); basicTestSuite.addTestSuite(IntentURITest.class); // TODO: reactivate this test once the IntentWorkspaceRepositoryStructurer will be modified to // correctly split the Intent Document // basicTestSuite.addTestSuite(IntentRepositoryStructurerTest.class); basicTestSuite.addTestSuite(ProjectTest.class); basicTestSuite.addTestSuite(RefresherTest.class); basicTestSuite.addTestSuite(ChangeEditorUpdateTest.class); basicTestSuite.addTestSuite(SimpleOrderTests.class); basicTestSuite.addTestSuite(CompletionTest.class); basicTestSuite.addTestSuite(SynchronizerTest.class); return basicTestSuite; } /** * Scenario tests: all tests that test an identified scenario for the end-user (very simple use case). * * @return the suite */ private static TestSuite uiScenarioSuite() { final TestSuite scenarioSuite = new TestSuite("Simple End-User Scenarios"); scenarioSuite.addTestSuite(CompilerNotificationsTest.class); scenarioSuite.addTestSuite(IntentAbstractResourceTest.class); scenarioSuite.addTestSuite(IntentDocumentationUpdateDoesNotCauseResolvingIssuesTest.class); scenarioSuite.addTestSuite(IntentProjectReopeningTest.class); scenarioSuite.addTestSuite(ExternalContentReferencesTest.class); scenarioSuite.addTestSuite(IntentHyperLinkDetetectorTest.class); scenarioSuite.addTestSuite(ExternalParsersTest.class); scenarioSuite.addTestSuite(ExternalChangesTest.class); return scenarioSuite; } /** * Complete use case testSuite: all tests that ensures the behavior of complete use cases. * * @return the suite */ private static TestSuite uiDemoSuite() { final TestSuite demoSuite = new TestSuite("Intent Demo TestSuite"); // demoSuite.addTestSuite(OpenEditorTest.class); // FIXME synchronizer issue // demoSuite.addTestSuite(CompileTest.class); // FIXME synchronizer issue // demoSuite.addTestSuite(EcoreTest.class); // FIXME synchronizer issue // demoSuite.addTestSuite(JavaTest.class); // FIXME synchronizer issue return demoSuite; } /** * Modeling Units updates tests. * * @return the suite */ private static TestSuite uiUpdateSuite() { final TestSuite updatesSuite = new TestSuite("Modeling Unit update tests"); // updatesSuite.addTestSuite(QuickFixTest.class); // TODO reactivate when comparison match stable // updatesSuite.addTestSuite(DragAndDropTest.class); // TODO reactivate when comparison match stable return updatesSuite; } /** * Bridges-related tests. * * @return the suite */ private static Test bridgesSuite() { final TestSuite bridgesSuite = new TestSuite("Intent Bridges Tests"); // Java bridge tests final TestSuite javaBridgeSuite = new TestSuite("Java Bridge Tests"); javaBridgeSuite.addTestSuite(JavaResourceFactoryTest.class); bridgesSuite.addTest(javaBridgeSuite); return bridgesSuite; } }