blob: 0278e2515559390aa981a4ff5640149234e4b16d [file] [log] [blame]
package org.eclipse.uml2.diagram.clazz.tests.tool;
import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
import org.eclipse.gmf.runtime.diagram.ui.tools.ConnectionCreationTool;
import org.eclipse.uml2.diagram.clazz.edit.parts.AssociationEditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.Class2EditPart;
import org.eclipse.uml2.diagram.clazz.part.CreateAssociationLinkTool;
import org.eclipse.uml2.diagram.clazz.part.UMLVisualIDRegistry;
import org.eclipse.uml2.diagram.clazz.providers.UMLElementTypes;
import org.eclipse.uml2.diagram.common.conventions.AssociationEndConvention;
import org.eclipse.uml2.diagram.common.tests.UMLDiagramFacade;
import org.eclipse.uml2.uml.AggregationKind;
import org.eclipse.uml2.uml.Association;
public class AssociationCreationToolTest extends ClassDiagramCreationToolTest {
IGraphicalEditPart mySourceEP;
public AssociationCreationToolTest(String name) {
super(name);
}
@Override
protected void setUp() throws Exception {
super.setUp();
createNodeByTool(UMLElementTypes.Class_2001);
mySourceEP = getDiagramEditPart().getChildBySemanticHint(UMLVisualIDRegistry.getType(Class2EditPart.VISUAL_ID));
assertNotNull("ClassEditPart was not created.", mySourceEP);
}
@Override
protected void tearDown() throws Exception {
mySourceEP = null;
super.tearDown();
}
public void testCompositeAssociationCreation() {
UMLDiagramFacade.flushEventQueue();
ConnectionCreationTool tool = new CreateAssociationLinkTool.COMPOSITE();
createConnectionByTool(tool, mySourceEP, mySourceEP);
ConnectionEditPart associationEP = findConnection(getDiagramEditPart(), AssociationEditPart.VISUAL_ID);
assertNotNull("AssociationEditPart was not created.", associationEP);
assertEquals("Association was created with incorrect Aggregation Kind.", AggregationKind.COMPOSITE_LITERAL.getLiteral(), getAggregationLiteral(associationEP));
}
public void testNoneAssociationCreation() {
UMLDiagramFacade.flushEventQueue();
ConnectionCreationTool tool = new CreateAssociationLinkTool.NONE();
createConnectionByTool(tool, mySourceEP, mySourceEP);
ConnectionEditPart associationEP = findConnection(getDiagramEditPart(), AssociationEditPart.VISUAL_ID);
assertNotNull("AssociationEditPart was not created.", associationEP);
assertEquals("Association was created with incorrect Aggregation Kind.", AggregationKind.NONE_LITERAL.getLiteral(), getAggregationLiteral(associationEP));
}
public void testSharedAssociationCreation() {
UMLDiagramFacade.flushEventQueue();
ConnectionCreationTool tool = new CreateAssociationLinkTool.SHARED();
createConnectionByTool(tool, mySourceEP, mySourceEP);
ConnectionEditPart associationEP = findConnection(getDiagramEditPart(), AssociationEditPart.VISUAL_ID);
assertNotNull("AssociationEditPart was not created.", associationEP);
assertEquals("Association was created with incorrect Aggregation Kind.", AggregationKind.SHARED_LITERAL.getLiteral(), getAggregationLiteral(associationEP));
}
public void testCompositeAssociationCreationOnDoubleClick() {
ConnectionCreationTool tool = new CreateAssociationLinkTool.COMPOSITE();
createConnectionByToolDoubleClick(tool);
ConnectionEditPart associationEP = findConnection(getDiagramEditPart(), AssociationEditPart.VISUAL_ID);
assertNotNull("AssociationEditPart was not created.", associationEP);
assertEquals("Association was created with incorrect Aggregation Kind.", AggregationKind.COMPOSITE_LITERAL.getLiteral(), getAggregationLiteral(associationEP));
}
public void testNoneAssociationCreationOnDoubleClick() {
ConnectionCreationTool tool = new CreateAssociationLinkTool.NONE();
createConnectionByToolDoubleClick(tool);
ConnectionEditPart associationEP = findConnection(getDiagramEditPart(), AssociationEditPart.VISUAL_ID);
assertNotNull("AssociationEditPart was not created.", associationEP);
assertEquals("Association was created with incorrect Aggregation Kind.", AggregationKind.NONE_LITERAL.getLiteral(), getAggregationLiteral(associationEP));
}
public void testSharedAssociationCreationOnDoubleClick() {
ConnectionCreationTool tool = new CreateAssociationLinkTool.SHARED();
createConnectionByToolDoubleClick(tool);
ConnectionEditPart associationEP = findConnection(getDiagramEditPart(), AssociationEditPart.VISUAL_ID);
assertNotNull("AssociationEditPart was not created.", associationEP);
assertEquals("Association was created with incorrect Aggregation Kind.", AggregationKind.SHARED_LITERAL.getLiteral(), getAggregationLiteral(associationEP));
}
private String getAggregationLiteral(ConnectionEditPart associationEP) {
Association association = (Association) associationEP.getNotationView().getElement();
return AssociationEndConvention.getTargetEnd(association).getAggregation().getLiteral();
}
}