blob: bf7d9fd0379ad21cbd7623eb0d1462bedc0805d5 [file] [log] [blame]
/*******************************************************************************
* 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;
}
}