/* * Copyright (c) 2007 Borland Software Corporation * * 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: * Sergey Gribovsky (Borland) - initial API and implementation */ package org.eclipse.uml2.diagram.activity.tests.tools; import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventActionEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.ActivityFinalNodeEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.ActivityParameterNodeEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.CentralBufferNodeEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.DataStoreNodeEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.DecisionNodeEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.FlowFinalNodeEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.ForkNodeEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.InitialNodeEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.JoinNodeEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.MergeNodeEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionEditPart; import org.eclipse.uml2.diagram.activity.edit.parts.SendSignalActionEditPart; import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; import org.eclipse.uml2.diagram.activity.tests.ActivityDiagramFacade; import org.eclipse.uml2.diagram.common.tests.UMLDiagramFacade; import org.eclipse.uml2.diagram.common.tool.CreationToolTestBase; public class CreationToolTest extends CreationToolTestBase { public CreationToolTest() { super("Testing element creation by tools"); //$NON-NLS-1$ } public void test_rootEditPart() { assertNotNull("Root edit part is NULL", getDiagramEditPart()); //$NON-NLS-1$ } public void test_activityCreation() { createNodeByTool(UMLElementTypes.Activity_2026, 10, 10); IGraphicalEditPart activityEditPart = getDiagramEditPart().getChildBySemanticHint(UMLVisualIDRegistry.getType(ActivityEditPart.VISUAL_ID)); assertNotNull("Activity edit part was not found.", activityEditPart); //$NON-NLS-1$ UMLDiagramFacade.flushEventQueue(); } public void test_activityParameterNodeCreation() { createNodeByTool(UMLElementTypes.Activity_2026, 10, 10); IGraphicalEditPart activityEditPart = getDiagramEditPart().getChildBySemanticHint(UMLVisualIDRegistry.getType(ActivityEditPart.VISUAL_ID)); assertNotNull("Activity edit part was not found.", activityEditPart); //$NON-NLS-1$ UMLDiagramFacade.flushEventQueue(); Rectangle activityBounds = activityEditPart.getFigure().getBounds(); createNodeByTool(UMLElementTypes.ActivityParameterNode_3052, activityBounds.x + 20, activityBounds.y + 5); IGraphicalEditPart activityParameterNodeEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(ActivityParameterNodeEditPart.VISUAL_ID)); assertNotNull("Activity parameter node edit part was not found.", activityParameterNodeEditPart); //$NON-NLS-1$ } public void test_objectNodesCreation() { createNodeByTool(UMLElementTypes.Activity_2026, 10, 10); IGraphicalEditPart activityEditPart = getDiagramEditPart().getChildBySemanticHint(UMLVisualIDRegistry.getType(ActivityEditPart.VISUAL_ID)); assertNotNull("Activity edit part was not found.", activityEditPart); //$NON-NLS-1$ UMLDiagramFacade.flushEventQueue(); Rectangle activityBounds = activityEditPart.getFigure().getBounds(); createNodeByTool(UMLElementTypes.CentralBufferNode_3037, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart centralBufferNodeEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(CentralBufferNodeEditPart.VISUAL_ID)); assertNotNull("Central buffer node edit part was not found.", centralBufferNodeEditPart); //$NON-NLS-1$ createNodeByTool(UMLElementTypes.DataStoreNode_3036, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart dataStoreNodeEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(DataStoreNodeEditPart.VISUAL_ID)); assertNotNull("Data store node edit part was not found.", dataStoreNodeEditPart); //$NON-NLS-1$ } public void test_controlNodesCreation() { createNodeByTool(UMLElementTypes.Activity_2026, 10, 10); IGraphicalEditPart activityEditPart = getDiagramEditPart().getChildBySemanticHint(UMLVisualIDRegistry.getType(ActivityEditPart.VISUAL_ID)); assertNotNull("Activity edit part was not found.", activityEditPart); //$NON-NLS-1$ UMLDiagramFacade.flushEventQueue(); Rectangle activityBounds = activityEditPart.getFigure().getBounds(); createNodeByTool(UMLElementTypes.InitialNode_3035, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart initialNodeEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(InitialNodeEditPart.VISUAL_ID)); assertNotNull("Initial node edit part was not found.", initialNodeEditPart); //$NON-NLS-1$ createNodeByTool(UMLElementTypes.ActivityFinalNode_3032, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart finalNodeEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(ActivityFinalNodeEditPart.VISUAL_ID)); assertNotNull("Final node edit part was not found.", finalNodeEditPart); //$NON-NLS-1$ createNodeByTool(UMLElementTypes.FlowFinalNode_3038, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart flowFinalNodeEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(FlowFinalNodeEditPart.VISUAL_ID)); assertNotNull("Flow Final node edit part was not found.", flowFinalNodeEditPart); //$NON-NLS-1$ createNodeByTool(UMLElementTypes.MergeNode_3034, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart mergeNodeEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(MergeNodeEditPart.VISUAL_ID)); assertNotNull("Merge node edit part was not found.", mergeNodeEditPart); //$NON-NLS-1$ createNodeByTool(UMLElementTypes.DecisionNode_3033, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart decisionNodeEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(DecisionNodeEditPart.VISUAL_ID)); assertNotNull("Merge node edit part was not found.", decisionNodeEditPart); //$NON-NLS-1$ createNodeByTool(UMLElementTypes.ForkNode_3039, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart forkNodeEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(ForkNodeEditPart.VISUAL_ID)); assertNotNull("Merge node edit part was not found.", forkNodeEditPart); //$NON-NLS-1$ createNodeByTool(UMLElementTypes.JoinNode_3040, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart joinNodeEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(JoinNodeEditPart.VISUAL_ID)); assertNotNull("Join node edit part was not found.", joinNodeEditPart); //$NON-NLS-1$ } public void test_actionsCreation() { createNodeByTool(UMLElementTypes.Activity_2026, 10, 10); IGraphicalEditPart activityEditPart = getDiagramEditPart().getChildBySemanticHint(UMLVisualIDRegistry.getType(ActivityEditPart.VISUAL_ID)); assertNotNull("Activity edit part was not found.", activityEditPart); //$NON-NLS-1$ UMLDiagramFacade.flushEventQueue(); Rectangle activityBounds = activityEditPart.getFigure().getBounds(); createNodeByTool(UMLElementTypes.AcceptEventAction_3030, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart acceptEventActionEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(AcceptEventActionEditPart.VISUAL_ID)); assertNotNull("Accept Event action edit part was not found.", acceptEventActionEditPart); //$NON-NLS-1$ createNodeByTool(UMLElementTypes.AddStructuralFeatureValueAction_3043, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart addFeatureActionEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(AddStructuralFeatureValueActionEditPart.VISUAL_ID)); assertNotNull("Add Structural Feature action edit part was not found.", addFeatureActionEditPart); //$NON-NLS-1$ createNodeByTool(UMLElementTypes.CallBehaviorAction_3044, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart callBehaviorActionEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(CallBehaviorActionEditPart.VISUAL_ID)); assertNotNull("Call Behavior action edit part was not found.", callBehaviorActionEditPart); //$NON-NLS-1$ createNodeByTool(UMLElementTypes.CallOperationAction_3045, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart callOperationActionEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(CallOperationActionEditPart.VISUAL_ID)); assertNotNull("Call Operation action edit part was not found.", callOperationActionEditPart); //$NON-NLS-1$ createNodeByTool(UMLElementTypes.CreateObjectAction_3042, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart createObjectActionEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(CreateObjectActionEditPart.VISUAL_ID)); assertNotNull("Create Object action edit part was not found.", createObjectActionEditPart); //$NON-NLS-1$ createNodeByTool(UMLElementTypes.OpaqueAction_3029, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart opaqueActionEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(OpaqueActionEditPart.VISUAL_ID)); assertNotNull("Opaque action edit part was not found.", opaqueActionEditPart); //$NON-NLS-1$ createNodeByTool(UMLElementTypes.SendSignalAction_3053, activityBounds.x + 50, activityBounds.y + 50); IGraphicalEditPart sendSignalActionEditPart = activityEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(SendSignalActionEditPart.VISUAL_ID)); assertNotNull("Send Signal action edit part was not found.", sendSignalActionEditPart); //$NON-NLS-1$ } @Override protected UMLDiagramFacade getDiagram(String projectPath) { return new ActivityDiagramFacade(projectPath); } }