package org.eclipse.uml2.diagram.clazz.tests.tool; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionEditPart; import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart; import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.uml2.diagram.clazz.edit.parts.Class2EditPart; import org.eclipse.uml2.diagram.clazz.edit.parts.DataType2EditPart; import org.eclipse.uml2.diagram.clazz.edit.parts.Dependency2EditPart; import org.eclipse.uml2.diagram.clazz.part.CreateDependencyLinkTool; import org.eclipse.uml2.diagram.clazz.part.UMLVisualIDRegistry; import org.eclipse.uml2.diagram.clazz.providers.UMLElementTypes; import org.eclipse.uml2.diagram.common.part.CreateLinkToolBase; import org.eclipse.uml2.diagram.common.tests.UMLDiagramFacade; import org.eclipse.uml2.uml.UMLPackage; public class DependencyCreationToolTest extends ClassDiagramCreationToolTest { private IGraphicalEditPart mySourceEP; private IGraphicalEditPart myTargetEP; public DependencyCreationToolTest(String name) { super(name); // TODO Auto-generated constructor stub } @Override protected void setUp() throws Exception { super.setUp(); DiagramEditPart diagram = getDiagramEditPart(); createNodeByTool(UMLElementTypes.Class_2001, 10, 10); mySourceEP = diagram.getChildBySemanticHint(UMLVisualIDRegistry.getType(Class2EditPart.VISUAL_ID)); assertNotNull("ClassEditPart was not created.", mySourceEP); createNodeByTool(UMLElementTypes.DataType_2004, 100, 100); myTargetEP = diagram.getChildBySemanticHint(UMLVisualIDRegistry.getType(DataType2EditPart.VISUAL_ID)); assertNotNull("DataTypeEditPart was not created.", myTargetEP); } public void testABSTRACTIONDependency() { UMLDiagramFacade.flushEventQueue(); CreateDependencyLinkTool tool = new CreateDependencyLinkTool.ABSTRACTION(); createConnectionByTool(tool, mySourceEP, myTargetEP); EClass type = UMLPackage.eINSTANCE.getAbstraction(); testDependency(type); } public void testDEPENDENCYependency() { UMLDiagramFacade.flushEventQueue(); CreateDependencyLinkTool tool = new CreateDependencyLinkTool.DEPENDENCY(); createConnectionByTool(tool, mySourceEP, myTargetEP); EClass type = UMLPackage.eINSTANCE.getDependency(); testDependency(type); } public void testUSAGEDependency() { UMLDiagramFacade.flushEventQueue(); CreateLinkToolBase tool = new CreateDependencyLinkTool.USAGE(); createConnectionByTool(tool, mySourceEP, myTargetEP); EClass type = UMLPackage.eINSTANCE.getUsage(); testDependency(type); } public void testSUBSTITUTIONDependency() { UMLDiagramFacade.flushEventQueue(); CreateDependencyLinkTool tool = new CreateDependencyLinkTool.SUBSTITUTION(); createConnectionByTool(tool, mySourceEP, myTargetEP); EClass type = UMLPackage.eINSTANCE.getSubstitution(); testDependency(type); } public void testABSTRACTIONDependencyCreationOnDoubleClick() { getDiagramEditPart().getViewer().setSelection(new StructuredSelection(new Object[] { mySourceEP, myTargetEP })); CreateDependencyLinkTool tool = new CreateDependencyLinkTool.ABSTRACTION(); createConnectionByToolDoubleClick(tool); EClass type = UMLPackage.eINSTANCE.getAbstraction(); testDependency(type); } public void testDEPENDENCYDependencyCreationOnDoubleClick() { getDiagramEditPart().getViewer().setSelection(new StructuredSelection(new Object[] { mySourceEP, myTargetEP })); CreateDependencyLinkTool tool = new CreateDependencyLinkTool.DEPENDENCY(); createConnectionByToolDoubleClick(tool); EClass type = UMLPackage.eINSTANCE.getDependency(); testDependency(type); } public void testSUBSTITUTIONDependencyCreationOnDoubleClick() { getDiagramEditPart().getViewer().setSelection(new StructuredSelection(new Object[] { mySourceEP, myTargetEP })); CreateDependencyLinkTool tool = new CreateDependencyLinkTool.SUBSTITUTION(); createConnectionByToolDoubleClick(tool); EClass type = UMLPackage.eINSTANCE.getSubstitution(); testDependency(type); } public void testUSAGEDependencyCreationOnDoubleClick() { getDiagramEditPart().getViewer().setSelection(new StructuredSelection(new Object[] { mySourceEP, myTargetEP })); CreateLinkToolBase tool = new CreateDependencyLinkTool.USAGE(); createConnectionByToolDoubleClick(tool); EClass type = UMLPackage.eINSTANCE.getUsage(); testDependency(type); } private void testDependency(EClass type) { ConnectionEditPart associationEP = findConnection(getDiagramEditPart(), Dependency2EditPart.VISUAL_ID); assertNotNull("DependencyEditPart was not created.", associationEP); EObject element = associationEP.getNotationView().getElement(); assertEquals("Dependency was created with incorrect Kind.", type, element.eClass()); } }