blob: c754c725eb1d97bc05f2c3178a3edd89e48c410e [file] [log] [blame]
/*
* Copyright (c) 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM - Initial API and implementation
*
* $Id: AllTests.java,v 1.6 2004/05/20 04:54:51 khussey Exp $
*/
package org.eclipse.uml2.edit.tests;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.List;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
import org.eclipse.uml2.provider.tests.AbstractionItemProviderTest;
import org.eclipse.uml2.provider.tests.ActivityItemProviderTest;
import org.eclipse.uml2.provider.tests.ActorItemProviderTest;
import org.eclipse.uml2.provider.tests.ArtifactItemProviderTest;
import org.eclipse.uml2.provider.tests.AssociationClassItemProviderTest;
import org.eclipse.uml2.provider.tests.AssociationItemProviderTest;
import org.eclipse.uml2.provider.tests.ClassItemProviderTest;
import org.eclipse.uml2.provider.tests.ClassifierTemplateParameterItemProviderTest;
import org.eclipse.uml2.provider.tests.CollaborationItemProviderTest;
import org.eclipse.uml2.provider.tests.CommunicationPathItemProviderTest;
import org.eclipse.uml2.provider.tests.ComponentItemProviderTest;
import org.eclipse.uml2.provider.tests.ConnectableElementTemplateParameterItemProviderTest;
import org.eclipse.uml2.provider.tests.ConstraintItemProviderTest;
import org.eclipse.uml2.provider.tests.DataTypeItemProviderTest;
import org.eclipse.uml2.provider.tests.DependencyItemProviderTest;
import org.eclipse.uml2.provider.tests.DeploymentItemProviderTest;
import org.eclipse.uml2.provider.tests.DeploymentSpecificationItemProviderTest;
import org.eclipse.uml2.provider.tests.DeviceItemProviderTest;
import org.eclipse.uml2.provider.tests.DurationConstraintItemProviderTest;
import org.eclipse.uml2.provider.tests.DurationIntervalItemProviderTest;
import org.eclipse.uml2.provider.tests.DurationItemProviderTest;
import org.eclipse.uml2.provider.tests.EnumerationItemProviderTest;
import org.eclipse.uml2.provider.tests.EnumerationLiteralItemProviderTest;
import org.eclipse.uml2.provider.tests.ExecutionEnvironmentItemProviderTest;
import org.eclipse.uml2.provider.tests.ExpressionItemProviderTest;
import org.eclipse.uml2.provider.tests.ExtensionEndItemProviderTest;
import org.eclipse.uml2.provider.tests.ExtensionItemProviderTest;
import org.eclipse.uml2.provider.tests.GeneralizationSetItemProviderTest;
import org.eclipse.uml2.provider.tests.ImplementationItemProviderTest;
import org.eclipse.uml2.provider.tests.InformationFlowItemProviderTest;
import org.eclipse.uml2.provider.tests.InformationItemItemProviderTest;
import org.eclipse.uml2.provider.tests.InstanceSpecificationItemProviderTest;
import org.eclipse.uml2.provider.tests.InstanceValueItemProviderTest;
import org.eclipse.uml2.provider.tests.InteractionConstraintItemProviderTest;
import org.eclipse.uml2.provider.tests.InteractionItemProviderTest;
import org.eclipse.uml2.provider.tests.InterfaceItemProviderTest;
import org.eclipse.uml2.provider.tests.IntervalConstraintItemProviderTest;
import org.eclipse.uml2.provider.tests.IntervalItemProviderTest;
import org.eclipse.uml2.provider.tests.LiteralBooleanItemProviderTest;
import org.eclipse.uml2.provider.tests.LiteralIntegerItemProviderTest;
import org.eclipse.uml2.provider.tests.LiteralNullItemProviderTest;
import org.eclipse.uml2.provider.tests.LiteralStringItemProviderTest;
import org.eclipse.uml2.provider.tests.LiteralUnlimitedNaturalItemProviderTest;
import org.eclipse.uml2.provider.tests.ManifestationItemProviderTest;
import org.eclipse.uml2.provider.tests.ModelItemProviderTest;
import org.eclipse.uml2.provider.tests.NodeItemProviderTest;
import org.eclipse.uml2.provider.tests.OpaqueExpressionItemProviderTest;
import org.eclipse.uml2.provider.tests.OperationItemProviderTest;
import org.eclipse.uml2.provider.tests.OperationTemplateParameterItemProviderTest;
import org.eclipse.uml2.provider.tests.PackageItemProviderTest;
import org.eclipse.uml2.provider.tests.ParameterItemProviderTest;
import org.eclipse.uml2.provider.tests.PermissionItemProviderTest;
import org.eclipse.uml2.provider.tests.PortItemProviderTest;
import org.eclipse.uml2.provider.tests.PrimitiveFunctionItemProviderTest;
import org.eclipse.uml2.provider.tests.PrimitiveTypeItemProviderTest;
import org.eclipse.uml2.provider.tests.ProfileApplicationItemProviderTest;
import org.eclipse.uml2.provider.tests.ProfileItemProviderTest;
import org.eclipse.uml2.provider.tests.PropertyItemProviderTest;
import org.eclipse.uml2.provider.tests.ProtocolStateMachineItemProviderTest;
import org.eclipse.uml2.provider.tests.ProtocolTransitionItemProviderTest;
import org.eclipse.uml2.provider.tests.RealizationItemProviderTest;
import org.eclipse.uml2.provider.tests.RedefinableTemplateSignatureItemProviderTest;
import org.eclipse.uml2.provider.tests.SignalItemProviderTest;
import org.eclipse.uml2.provider.tests.StateMachineItemProviderTest;
import org.eclipse.uml2.provider.tests.StereotypeItemProviderTest;
import org.eclipse.uml2.provider.tests.SubstitutionItemProviderTest;
import org.eclipse.uml2.provider.tests.TemplateParameterItemProviderTest;
import org.eclipse.uml2.provider.tests.TemplateParameterSubstitutionItemProviderTest;
import org.eclipse.uml2.provider.tests.TemplateSignatureItemProviderTest;
import org.eclipse.uml2.provider.tests.TimeConstraintItemProviderTest;
import org.eclipse.uml2.provider.tests.TimeExpressionItemProviderTest;
import org.eclipse.uml2.provider.tests.TimeIntervalItemProviderTest;
import org.eclipse.uml2.provider.tests.UsageItemProviderTest;
import org.eclipse.uml2.provider.tests.UseCaseItemProviderTest;
import org.eclipse.uml2.provider.tests.VariableItemProviderTest;
/**
* <!-- begin-user-doc -->
* A test suite for '<em><b>UML2</b></em>' edit support.
* <!-- end-user-doc -->
* @generated
*/
public class AllTests extends TestSuite {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static final String copyright = "Copyright (c) 2003, 2004 IBM Corporation and others."; //$NON-NLS-1$
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static void main(String[] args) {
TestRunner.run(suite());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static Test suite() {
TestSuite suite = new AllTests("UML2 Edit Tests"); //$NON-NLS-1$
suite.addTestSuite(OpaqueExpressionItemProviderTest.class);
suite.addTestSuite(ExpressionItemProviderTest.class);
suite.addTestSuite(ClassItemProviderTest.class);
suite.addTestSuite(PropertyItemProviderTest.class);
suite.addTestSuite(OperationItemProviderTest.class);
suite.addTestSuite(ParameterItemProviderTest.class);
suite.addTestSuite(PackageItemProviderTest.class);
suite.addTestSuite(EnumerationItemProviderTest.class);
suite.addTestSuite(DataTypeItemProviderTest.class);
suite.addTestSuite(EnumerationLiteralItemProviderTest.class);
suite.addTestSuite(PrimitiveTypeItemProviderTest.class);
suite.addTestSuite(LiteralBooleanItemProviderTest.class);
suite.addTestSuite(LiteralStringItemProviderTest.class);
suite.addTestSuite(LiteralNullItemProviderTest.class);
suite.addTestSuite(LiteralIntegerItemProviderTest.class);
suite.addTestSuite(LiteralUnlimitedNaturalItemProviderTest.class);
suite.addTestSuite(ConstraintItemProviderTest.class);
suite.addTestSuite(InstanceSpecificationItemProviderTest.class);
suite.addTestSuite(InstanceValueItemProviderTest.class);
suite.addTestSuite(AssociationItemProviderTest.class);
suite.addTestSuite(StereotypeItemProviderTest.class);
suite.addTestSuite(ProfileItemProviderTest.class);
suite.addTestSuite(ProfileApplicationItemProviderTest.class);
suite.addTestSuite(ExtensionItemProviderTest.class);
suite.addTestSuite(ExtensionEndItemProviderTest.class);
suite.addTestSuite(InformationItemItemProviderTest.class);
suite.addTestSuite(InformationFlowItemProviderTest.class);
suite.addTestSuite(ActivityItemProviderTest.class);
suite.addTestSuite(PermissionItemProviderTest.class);
suite.addTestSuite(DependencyItemProviderTest.class);
suite.addTestSuite(UsageItemProviderTest.class);
suite.addTestSuite(AbstractionItemProviderTest.class);
suite.addTestSuite(RealizationItemProviderTest.class);
suite.addTestSuite(SubstitutionItemProviderTest.class);
suite.addTestSuite(AssociationClassItemProviderTest.class);
suite.addTestSuite(ModelItemProviderTest.class);
suite.addTestSuite(GeneralizationSetItemProviderTest.class);
suite.addTestSuite(ActorItemProviderTest.class);
suite.addTestSuite(UseCaseItemProviderTest.class);
suite.addTestSuite(ArtifactItemProviderTest.class);
suite.addTestSuite(ManifestationItemProviderTest.class);
suite.addTestSuite(InterfaceItemProviderTest.class);
suite.addTestSuite(ImplementationItemProviderTest.class);
suite.addTestSuite(VariableItemProviderTest.class);
suite.addTestSuite(CollaborationItemProviderTest.class);
suite.addTestSuite(InteractionItemProviderTest.class);
suite.addTestSuite(PortItemProviderTest.class);
suite.addTestSuite(TemplateSignatureItemProviderTest.class);
suite.addTestSuite(TemplateParameterItemProviderTest.class);
suite.addTestSuite(TemplateParameterSubstitutionItemProviderTest.class);
suite.addTestSuite(OperationTemplateParameterItemProviderTest.class);
suite.addTestSuite(ClassifierTemplateParameterItemProviderTest.class);
suite.addTestSuite(RedefinableTemplateSignatureItemProviderTest.class);
suite.addTestSuite(ConnectableElementTemplateParameterItemProviderTest.class);
suite.addTestSuite(SignalItemProviderTest.class);
suite.addTestSuite(PrimitiveFunctionItemProviderTest.class);
suite.addTestSuite(StateMachineItemProviderTest.class);
suite.addTestSuite(InteractionConstraintItemProviderTest.class);
suite.addTestSuite(DeploymentItemProviderTest.class);
suite.addTestSuite(NodeItemProviderTest.class);
suite.addTestSuite(DeviceItemProviderTest.class);
suite.addTestSuite(ExecutionEnvironmentItemProviderTest.class);
suite.addTestSuite(CommunicationPathItemProviderTest.class);
suite.addTestSuite(TimeExpressionItemProviderTest.class);
suite.addTestSuite(DurationItemProviderTest.class);
suite.addTestSuite(DurationIntervalItemProviderTest.class);
suite.addTestSuite(IntervalItemProviderTest.class);
suite.addTestSuite(TimeConstraintItemProviderTest.class);
suite.addTestSuite(IntervalConstraintItemProviderTest.class);
suite.addTestSuite(TimeIntervalItemProviderTest.class);
suite.addTestSuite(DurationConstraintItemProviderTest.class);
suite.addTestSuite(ProtocolStateMachineItemProviderTest.class);
suite.addTestSuite(ProtocolTransitionItemProviderTest.class);
suite.addTestSuite(ComponentItemProviderTest.class);
suite.addTestSuite(DeploymentSpecificationItemProviderTest.class);
return suite;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public AllTests(String name) {
super(name);
}
/* (non-Javadoc)
* @see junit.framework.TestSuite#addTestSuite(java.lang.Class)
*/
public void addTestSuite(final Class testClass) {
TestSuite suite = new TestSuite();
try {
getTestConstructor(testClass);
} catch (NoSuchMethodException nsme) {
suite
.addTest(warning("Class " //$NON-NLS-1$
+ testClass.getName()
+ " has no public constructor TestCase(String name) or TestCase()")); //$NON-NLS-1$
return;
}
if (!Modifier.isPublic(testClass.getModifiers())) {
suite.addTest(warning("Class " + testClass.getName() //$NON-NLS-1$
+ " is not public")); //$NON-NLS-1$
return;
}
Class superClass = testClass;
List names = new ArrayList();
while (Test.class.isAssignableFrom(superClass)) {
Method[] methods = superClass.getDeclaredMethods();
for (int i = 0; i < methods.length; i++) {
addTestMethod(suite, methods[i], names, testClass);
}
superClass = superClass.getSuperclass();
}
if (0 == suite.testCount()) {
suite.addTest(warning("No tests found in " + testClass.getName())); //$NON-NLS-1$
}
addTest(suite);
}
private Test warning(final String message) {
return new TestCase("warning") { //$NON-NLS-1$
protected void runTest() {
fail(message);
}
};
}
private void addTestMethod(TestSuite suite, Method method, List names,
Class testClass) {
String name = method.getName();
if (names.contains(name)) {
return;
}
if (!isPublicTestMethod(method)) {
if (isTestMethod(method)) {
suite.addTest(warning("Test method isn't public: " //$NON-NLS-1$
+ method.getName()));
}
return;
}
names.add(name);
suite.addTest(createTest(testClass, name));
}
private boolean isPublicTestMethod(Method method) {
return isTestMethod(method) && Modifier.isPublic(method.getModifiers());
}
private boolean isTestMethod(Method method) {
String name = method.getName();
return 0 == method.getParameterTypes().length
&& name.startsWith("test") && !name.endsWith("Gen") //$NON-NLS-1$ //$NON-NLS-2$
&& method.getReturnType().equals(Void.TYPE);
}
}