package org.eclipse.uml2.diagram.profile.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.profile.edit.parts.ElementImportEditPart;
import org.eclipse.uml2.diagram.profile.edit.parts.Profile2EditPart;
import org.eclipse.uml2.diagram.profile.edit.parts.ProfileContentsEditPart;
import org.eclipse.uml2.diagram.profile.edit.parts.Stereotype2EditPart;
import org.eclipse.uml2.diagram.profile.edit.parts.StereotypeEditPart;
import org.eclipse.uml2.diagram.profile.part.UMLPaletteFactory;
import org.eclipse.uml2.diagram.profile.part.UMLVisualIDRegistry;
public class ProfileGroupTest extends ProfileDCreationToolTestBase {
/**
* @generated
*/
PaletteRoot myRoot;
/**
* @generated
*/
Tool myProfileTool;
/**
* @generated
*/
Tool myStereotypeTool;
/**
* @generated
*/
Tool myMetaclassTool;
/**
* @generated
*/
Tool myExtensionTool;
/**
* @generated
*/
protected void setUp() throws Exception {
super.setUp();
myRoot = new PaletteRoot();
new UMLPaletteFactory().fillPalette(myRoot);
myProfileTool = ((ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(0)).createTool();
myStereotypeTool = ((ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(1)).createTool();
myMetaclassTool = ((ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(2)).createTool();
myExtensionTool = ((ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(3)).createTool();
}
/**
* @generated
*/
protected void tearDown() throws Exception {
myRoot = null;
myProfileTool = null;
myStereotypeTool = null;
myMetaclassTool = null;
myExtensionTool = null;
super.tearDown();
}
/**
* @generated
*/
public ProfileGroupTest(String name) {
super(name);
}
/**
* @generated
*/
public void testProfileOnDiagram() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
createNodeByTool(myProfileTool, 200, 100);
IGraphicalEditPart editPart1 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(Profile2EditPart.VISUAL_ID));
assertNotNull(editPart1);
assertEquals("Profile", getMetaclassName(editPart1));
getDiagramEditPart().getViewer().flush();
}
/**
* @generated
*/
public void testStereotypeOnDiagram() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
createNodeByTool(myStereotypeTool, 200, 100);
IGraphicalEditPart editPart2 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(StereotypeEditPart.VISUAL_ID));
assertNotNull(editPart2);
assertEquals("Stereotype", getMetaclassName(editPart2));
getDiagramEditPart().getViewer().flush();
}
/**
* @generated
*/
public void testMetaclassOnDiagram() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
createNodeByTool(myMetaclassTool, 200, 100);
IGraphicalEditPart editPart3 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(ElementImportEditPart.VISUAL_ID));
assertNotNull(editPart3);
assertEquals("ElementImport", getMetaclassName(editPart3));
getDiagramEditPart().getViewer().flush();
}
/**
* @generated
*/
public void testStereotypeInProfile() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
Tool tool1;
tool1 = new UnspecifiedTypeCreationTool(Collections.singletonList(ElementTypeRegistry.getInstance().getType("org.eclipse.uml2.diagram.profile.Profile_2002")));
createNodeByTool(tool1, 200, 100);
IGraphicalEditPart editPart4 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(Profile2EditPart.VISUAL_ID));
assertNotNull(editPart4);
getDiagramEditPart().getViewer().flush();
IGraphicalEditPart compartment1 = editPart4.getChildBySemanticHint(UMLVisualIDRegistry.getType(ProfileContentsEditPart.VISUAL_ID));
assertNotNull(compartment1);
createNodeByTool(myStereotypeTool, 200, 100);
IGraphicalEditPart editPart5 = compartment1.getChildBySemanticHint(UMLVisualIDRegistry.getType(Stereotype2EditPart.VISUAL_ID));
assertNotNull(editPart5);
assertEquals("Stereotype", getMetaclassName(editPart5));
getDiagramEditPart().getViewer().flush();
}
/**
* @generated
*/
private static java.lang.String getMetaclassName(IGraphicalEditPart editPart) {
return editPart.getNotationView().getElement().eClass().getName();
}
}