package org.eclipse.uml2.diagram.clazz.tests.action; import org.eclipse.gmf.runtime.diagram.ui.actions.DiagramAction; import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; import org.eclipse.uml2.diagram.clazz.action.TurnIntoInterface2Action; import org.eclipse.uml2.diagram.clazz.action.TurnIntoInterfaceAction; import org.eclipse.uml2.diagram.clazz.edit.parts.Interface2EditPart; import org.eclipse.uml2.diagram.clazz.edit.parts.InterfaceEditPart; import org.eclipse.uml2.diagram.clazz.part.UMLVisualIDRegistry; import org.eclipse.uml2.diagram.clazz.providers.UMLElementTypes; import org.eclipse.uml2.diagram.clazz.tests.tool.ClassDiagramCreationToolTest; public class ChangeInterfaceNotationActionTest extends ClassDiagramCreationToolTest { public ChangeInterfaceNotationActionTest(String name) { super(name); } private void createRoundInterface() { createNodeByTool(UMLElementTypes.Interface_2010); IGraphicalEditPart interfaze = getDiagramEditPart().getChildBySemanticHint(UMLVisualIDRegistry.getType(InterfaceEditPart.VISUAL_ID)); assertNotNull("#225976. Round Interface was not created by an appropriate tool.", interfaze); } private void createRectangleInterface() { createNodeByTool(UMLElementTypes.Interface_2013); IGraphicalEditPart interfaze = getDiagramEditPart().getChildBySemanticHint(UMLVisualIDRegistry.getType(Interface2EditPart.VISUAL_ID)); assertNotNull("#225976. Rectangle Interface was not created by an appropriate tool.", interfaze); } private void runTurnIntoRectangleAction() { assertFalse("Full selection selection is a precondition to successfully run action.", getSelection().isEmpty()); DiagramAction action = new TurnIntoInterface2Action(getWorkbenchPage(), "testID"); action.init(); assertTrue("TurnIntoRectangle Action should be enabled for the Rectangle Interface.", action.isEnabled()); action.run(); } private void runTurnIntoCircleAction() { assertFalse("Full selection selection is a precondition to successfully run action.", getSelection().isEmpty()); DiagramAction action = new TurnIntoInterfaceAction(getWorkbenchPage(), "testID"); action.init(); assertTrue("TurnIntoCircle Action should be enabled for the Rectangle Interface.", action.isEnabled()); action.run(); } public void testChangeToRectangleNotationAction1() { createRoundInterface(); runTurnIntoRectangleAction(); IGraphicalEditPart interfaze = getDiagramEditPart().getChildBySemanticHint(UMLVisualIDRegistry.getType(InterfaceEditPart.VISUAL_ID)); assertNull("Circle interface should be deleted. ", interfaze); } public void testChangeToRectangleNotationAction2() { createRoundInterface(); runTurnIntoRectangleAction(); IGraphicalEditPart interfaze2 = getDiagramEditPart().getChildBySemanticHint(UMLVisualIDRegistry.getType(Interface2EditPart.VISUAL_ID)); assertNotNull("Rectangle interface should be created. ", interfaze2); } public void testChangeToCircleNotationAction1() { createRectangleInterface(); runTurnIntoCircleAction(); IGraphicalEditPart interfaze = getDiagramEditPart().getChildBySemanticHint(UMLVisualIDRegistry.getType(InterfaceEditPart.VISUAL_ID)); assertNotNull("Circle interface should be created. ", interfaze); } public void testChangeToCircleNotationAction2() { createRectangleInterface(); runTurnIntoCircleAction(); IGraphicalEditPart interfaze2 = getDiagramEditPart().getChildBySemanticHint(UMLVisualIDRegistry.getType(Interface2EditPart.VISUAL_ID)); assertNull("Rectangle interface should be deleted. ", interfaze2); } public void testChangeInterfaceNotationIsChecked() { createRoundInterface(); DiagramAction action = new TurnIntoInterfaceAction(getWorkbenchPage(), "testID"); action.init(); action.refresh(); assertTrue("Turn into round interface Action should be checked for round interface.", action.isChecked()); } public void testChangeInterfaceNotationIsUnChecked() { createRoundInterface(); DiagramAction action = new TurnIntoInterface2Action(getWorkbenchPage(), "testID"); action.init(); action.refresh(); assertFalse("Turn into rectangle interface Action should be un-checked for round interface elements.", action.isChecked()); } }