package org.eclipse.uml2.diagram.usecase.tests.tool; import java.util.Collections; import org.eclipse.gef.Tool; import org.eclipse.gef.palette.PaletteContainer; import org.eclipse.gef.palette.PaletteRoot; import org.eclipse.gef.palette.ToolEntry; import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeCreationTool; import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry; import org.eclipse.uml2.diagram.usecase.edit.parts.DiagramHeaderEditPart; import org.eclipse.uml2.diagram.usecase.edit.parts.ElementImportEditPart; import org.eclipse.uml2.diagram.usecase.edit.parts.ExtensionPoint2EditPart; import org.eclipse.uml2.diagram.usecase.edit.parts.ExtensionPointEditPart; import org.eclipse.uml2.diagram.usecase.edit.parts.PackageImportsEditPart; import org.eclipse.uml2.diagram.usecase.edit.parts.UseCaseAsClassEditPart; import org.eclipse.uml2.diagram.usecase.edit.parts.UseCaseAsClassExtensionPointsEditPart; import org.eclipse.uml2.diagram.usecase.edit.parts.UseCaseEditPart; import org.eclipse.uml2.diagram.usecase.edit.parts.UseCaseExtensionPointsEditPart; import org.eclipse.uml2.diagram.usecase.part.UMLPaletteFactory; import org.eclipse.uml2.diagram.usecase.part.UMLVisualIDRegistry; public class ChildrenGroupTest extends UseCaseCreationToolTestBase { /** * @generated */ PaletteRoot myRoot; /** * @generated */ Tool myExtensionPointTool; /** * @generated */ Tool myElementImportTool; /** * @generated */ @Override protected void setUp() throws Exception { super.setUp(); myRoot = new PaletteRoot(); new UMLPaletteFactory().fillPalette(myRoot); myExtensionPointTool = ((ToolEntry) ((PaletteContainer) myRoot.getChildren().get(1)).getChildren().get(0)).createTool(); myElementImportTool = ((ToolEntry) ((PaletteContainer) myRoot.getChildren().get(1)).getChildren().get(1)).createTool(); } /** * @generated */ @Override protected void tearDown() throws Exception { myRoot = null; myExtensionPointTool = null; myElementImportTool = null; super.tearDown(); } /** * @generated */ public ChildrenGroupTest(String name) { super(name); } /** * @generated */ public void testElementImport() { IGraphicalEditPart diagramEditPart = getDiagramEditPart(); IGraphicalEditPart editPart1 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(DiagramHeaderEditPart.VISUAL_ID)); assertNotNull(editPart1); getDiagramEditPart().getViewer().flush(); IGraphicalEditPart compartment1 = editPart1.getChildBySemanticHint(UMLVisualIDRegistry.getType(PackageImportsEditPart.VISUAL_ID)); assertNotNull(compartment1); createNodeByTool(myElementImportTool, 10, 10); IGraphicalEditPart editPart2 = compartment1.getChildBySemanticHint(UMLVisualIDRegistry.getType(ElementImportEditPart.VISUAL_ID)); assertNotNull(editPart2); assertEquals("ElementImport", getMetaclassName(editPart2)); getDiagramEditPart().getViewer().flush(); } /** * @generated */ public void testExtPointInUseCase() { IGraphicalEditPart diagramEditPart = getDiagramEditPart(); Tool tool1; tool1 = new UnspecifiedTypeCreationTool(Collections.singletonList(ElementTypeRegistry.getInstance().getType("org.eclipse.uml2.diagram.usecase.UseCase_2003"))); createNodeByTool(tool1, 200, 100); IGraphicalEditPart editPart3 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(UseCaseEditPart.VISUAL_ID)); assertNotNull(editPart3); getDiagramEditPart().getViewer().flush(); IGraphicalEditPart compartment2 = editPart3.getChildBySemanticHint(UMLVisualIDRegistry.getType(UseCaseExtensionPointsEditPart.VISUAL_ID)); assertNotNull(compartment2); createNodeByTool(myExtensionPointTool, 200, 100); IGraphicalEditPart editPart4 = compartment2.getChildBySemanticHint(UMLVisualIDRegistry.getType(ExtensionPointEditPart.VISUAL_ID)); assertNotNull(editPart4); assertEquals("ExtensionPoint", getMetaclassName(editPart4)); getDiagramEditPart().getViewer().flush(); } /** * @generated */ public void testExtPointInUseCaseAsClass() { IGraphicalEditPart diagramEditPart = getDiagramEditPart(); Tool tool2; tool2 = new UnspecifiedTypeCreationTool(Collections.singletonList(ElementTypeRegistry.getInstance().getType("org.eclipse.uml2.diagram.usecase.UseCase_2004"))); createNodeByTool(tool2, 200, 100); IGraphicalEditPart editPart5 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(UseCaseAsClassEditPart.VISUAL_ID)); assertNotNull(editPart5); getDiagramEditPart().getViewer().flush(); IGraphicalEditPart compartment3 = editPart5.getChildBySemanticHint(UMLVisualIDRegistry.getType(UseCaseAsClassExtensionPointsEditPart.VISUAL_ID)); assertNotNull(compartment3); createNodeByTool(myExtensionPointTool, 200, 100); IGraphicalEditPart editPart6 = compartment3.getChildBySemanticHint(UMLVisualIDRegistry.getType(ExtensionPoint2EditPart.VISUAL_ID)); assertNotNull(editPart6); assertEquals("ExtensionPoint", getMetaclassName(editPart6)); getDiagramEditPart().getViewer().flush(); } /** * @generated */ private static java.lang.String getMetaclassName(IGraphicalEditPart editPart) { return editPart.getNotationView().getElement().eClass().getName(); } }