package org.eclipse.uml2.diagram.common.tests;
import java.util.Set;
import junit.framework.TestCase;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.uml2.diagram.common.sheet.chooser.MetaclassContainmentFilter;
import org.eclipse.uml2.diagram.common.sheet.chooser.UMLContainmentFilter;
import org.eclipse.uml2.uml.UMLPackage;
public class MetaclassFilterTest extends TestCase {
public void testMetaclassContainmentFilter() {
UMLPackage UML = UMLPackage.eINSTANCE;
MetaclassContainmentFilter filter = UMLContainmentFilter.getWithoutTemplatesInstance();
Set<EClass> forType = filter.getAncestorsOrSelf(UML.getType());
assertNotNull(forType);
assertTrue(forType.contains(UML.getType()));
assertTrue(forType.contains(UML.getClass_()));
assertTrue(forType.contains(UML.getInterface()));
assertTrue(forType.contains(UML.getStateMachine()));
assertTrue(forType.contains(UML.getPackage()));
assertTrue(forType.contains(UML.getModel()));
assertTrue(forType.contains(UML.getAssociation()));
assertTrue(forType.contains(UML.getProperty())); //via DeploymentTarget#deployment
assertTrue(forType.contains(UML.getPort())); //via DeploymentTarget#deployment
assertTrue(forType.contains(UML.getInstanceSpecification())); //via DeploymentTarget#deployment
assertFalse(forType.contains(UML.getValueSpecification()));
assertFalse(forType.contains(UML.getUnlimitedNatural()));
assertFalse(forType.contains(UML.getConstraint()));
assertFalse(forType.contains(UML.getGeneralization()));
assertFalse(forType.contains(UML.getAction()));
}
}