use of com.archimatetool.model.IArchimateModel in project archi by archimatetool.
the class TreeModelViewerDragDropHandlerTests method testIsValidTreeSelection.
@Test
public void testIsValidTreeSelection() {
// Null selection is not valid
StructuredSelection selection = null;
assertFalse(dragHandler.isValidTreeSelection(selection));
// Set up some data
IFolder userFolder = IArchimateFactory.eINSTANCE.createFolder();
model.getFolder(FolderType.DIAGRAMS).getFolders().add(userFolder);
IFolder businessFolder = model.getFolder(FolderType.BUSINESS);
IArchimateElement e1 = IArchimateFactory.eINSTANCE.createBusinessActor();
businessFolder.getElements().add(e1);
IArchimateElement e2 = IArchimateFactory.eINSTANCE.createBusinessActor();
businessFolder.getElements().add(e2);
// Elements from the same root parent are OK
selection = new StructuredSelection(new Object[] { e1, e2 });
assertTrue(dragHandler.isValidTreeSelection(selection));
// Can't DnD a model
selection = new StructuredSelection(new Object[] { model });
assertFalse(dragHandler.isValidTreeSelection(selection));
// Can DnD a user folder
selection = new StructuredSelection(new Object[] { userFolder });
assertTrue(dragHandler.isValidTreeSelection(selection));
// Can't DnD a system folder
selection = new StructuredSelection(new Object[] { businessFolder });
assertFalse(dragHandler.isValidTreeSelection(selection));
// Can't DnD Mixed parent models
IArchimateModel model2 = IArchimateFactory.eINSTANCE.createArchimateModel();
model2.setDefaults();
IArchimateElement e3 = IArchimateFactory.eINSTANCE.createBusinessActor();
model2.getFolder(FolderType.BUSINESS).getElements().add(e3);
selection = new StructuredSelection(new Object[] { e1, e3 });
assertFalse(dragHandler.isValidTreeSelection(selection));
}
use of com.archimatetool.model.IArchimateModel in project archi by archimatetool.
the class DuplicateCommandHandlerTests method testDuplicateArchimateElements.
@Test
public void testDuplicateArchimateElements() {
ArchimateTestModel tm = new ArchimateTestModel();
IArchimateModel model = tm.createNewModel();
IFolder folder = model.getFolder(FolderType.BUSINESS);
IArchimateElement element1 = (IArchimateElement) tm.createModelElementAndAddToModel(IArchimatePackage.eINSTANCE.getBusinessActor());
element1.setName("Actor 1");
element1.setDocumentation("Doc 1");
assertEquals(1, folder.getElements().size());
assertSame(element1, folder.getElements().get(0));
IArchimateElement element2 = (IArchimateElement) tm.createModelElementAndAddToModel(IArchimatePackage.eINSTANCE.getBusinessActor());
element2.setName("Actor 2");
element2.setDocumentation("Doc 2");
assertEquals(2, folder.getElements().size());
assertSame(element2, folder.getElements().get(1));
IArchimateRelationship relation = (IArchimateRelationship) tm.createModelElementAndAddToModel(IArchimatePackage.eINSTANCE.getAssociationRelationship());
relation.connect(element1, element2);
assertTrue(element1.getSourceRelationships().contains(relation));
assertTrue(element2.getTargetRelationships().contains(relation));
DuplicateCommandHandler handler = new DuplicateCommandHandler(new Object[] { element1, element2 });
handler.duplicate();
assertEquals(4, folder.getElements().size());
assertSame(element1, folder.getElements().get(0));
assertSame(element2, folder.getElements().get(1));
IArchimateElement copy1 = (IArchimateElement) folder.getElements().get(2);
assertNotSame(element1, copy1);
assertNotEquals(element1.getId(), copy1.getId());
assertEquals(element1.getName() + " (copy)", copy1.getName());
assertEquals(element1.getDocumentation(), copy1.getDocumentation());
IArchimateElement copy2 = (IArchimateElement) folder.getElements().get(3);
assertNotSame(element2, copy2);
assertNotEquals(element2.getId(), copy2.getId());
assertEquals(element2.getName() + " (copy)", copy2.getName());
assertEquals(element2.getDocumentation(), copy2.getDocumentation());
assertTrue(copy1.getSourceRelationships().isEmpty());
assertTrue(copy1.getTargetRelationships().isEmpty());
assertTrue(copy2.getSourceRelationships().isEmpty());
assertTrue(copy2.getTargetRelationships().isEmpty());
}
use of com.archimatetool.model.IArchimateModel in project archi by archimatetool.
the class DuplicateCommandHandlerTests method testDuplicateDiagramModel_AddsConnectionsToConnections.
@Test
public void testDuplicateDiagramModel_AddsConnectionsToConnections() {
ArchimateTestModel tm = new ArchimateTestModel();
IArchimateModel model = tm.createNewModel();
IDiagramModel dm = model.getDefaultDiagramModel();
IArchimateElement element1 = IArchimateFactory.eINSTANCE.createBusinessActor();
IDiagramModelArchimateObject dmo1 = tm.createDiagramModelArchimateObjectAndAddToModel(element1);
dm.getChildren().add(dmo1);
IArchimateElement element2 = IArchimateFactory.eINSTANCE.createBusinessRole();
IDiagramModelArchimateObject dmo2 = tm.createDiagramModelArchimateObjectAndAddToModel(element2);
dm.getChildren().add(dmo2);
IArchimateElement element3 = IArchimateFactory.eINSTANCE.createBusinessActor();
IDiagramModelArchimateObject dmo3 = tm.createDiagramModelArchimateObjectAndAddToModel(element3);
dm.getChildren().add(dmo3);
IArchimateRelationship relation1 = IArchimateFactory.eINSTANCE.createAssignmentRelationship();
relation1.setSource(element1);
relation1.setTarget(element2);
IDiagramModelArchimateConnection dmc1 = tm.createDiagramModelArchimateConnectionAndAddToModel(relation1);
dmc1.connect(dmo1, dmo2);
IArchimateRelationship relation2 = IArchimateFactory.eINSTANCE.createAssociationRelationship();
relation2.setSource(element3);
relation2.setTarget(relation1);
IDiagramModelArchimateConnection dmc2 = tm.createDiagramModelArchimateConnectionAndAddToModel(relation2);
dmc2.connect(dmo3, dmc1);
DuplicateCommandHandler handler = new DuplicateCommandHandler(new Object[] { dm });
handler.duplicate();
IDiagramModel dmCopy = model.getDiagramModels().get(1);
EList<IDiagramModelObject> children = dmCopy.getChildren();
assertEquals(3, children.size());
IDiagramModelArchimateObject dmo1Copy = (IDiagramModelArchimateObject) children.get(0);
IDiagramModelArchimateObject dmo2Copy = (IDiagramModelArchimateObject) children.get(1);
IDiagramModelArchimateObject dmo3Copy = (IDiagramModelArchimateObject) children.get(2);
assertSame(element1, dmo1Copy.getArchimateConcept());
assertSame(element2, dmo2Copy.getArchimateConcept());
assertSame(element3, dmo3Copy.getArchimateConcept());
IDiagramModelArchimateConnection dmc1Copy = (IDiagramModelArchimateConnection) dmo1Copy.getSourceConnections().get(0);
assertSame(relation1, dmc1Copy.getArchimateConcept());
assertSame(dmo2Copy, dmc1Copy.getTarget());
// Connection to Connection
assertSame(dmc1Copy, dmo3Copy.getSourceConnections().get(0).getTarget());
}
use of com.archimatetool.model.IArchimateModel in project archi by archimatetool.
the class DiagramModelUtilsTests method testFindDiagramModelObjectsAndConnections_AfterDuplicateDiagram.
// =================================================================================================
@Test
public void testFindDiagramModelObjectsAndConnections_AfterDuplicateDiagram() {
ArchimateTestModel tm = new ArchimateTestModel();
IArchimateModel model = tm.createNewModel();
IDiagramModel dm = model.getDefaultDiagramModel();
IArchimateElement actor = IArchimateFactory.eINSTANCE.createBusinessActor();
IDiagramModelArchimateObject dmo1 = tm.createDiagramModelArchimateObjectAndAddToModel(actor);
dm.getChildren().add(dmo1);
IArchimateElement role = IArchimateFactory.eINSTANCE.createBusinessRole();
IDiagramModelArchimateObject dmo2 = tm.createDiagramModelArchimateObjectAndAddToModel(role);
dm.getChildren().add(dmo2);
IAssignmentRelationship relation = IArchimateFactory.eINSTANCE.createAssignmentRelationship();
relation.setSource(actor);
relation.setTarget(role);
IDiagramModelArchimateConnection dmc1 = tm.createDiagramModelArchimateConnectionAndAddToModel(relation);
dmc1.connect(dmo1, dmo2);
List<?> list = DiagramModelUtils.findDiagramModelObjectsForElement(actor);
assertEquals(1, list.size());
list = DiagramModelUtils.findDiagramModelObjectsForElement(role);
assertEquals(1, list.size());
list = DiagramModelUtils.findDiagramModelConnectionsForRelation(relation);
assertEquals(1, list.size());
// Duplicate
DuplicateCommandHandler handler = new DuplicateCommandHandler(new Object[] { dm });
handler.duplicate();
list = DiagramModelUtils.findDiagramModelObjectsForElement(actor);
assertEquals(2, list.size());
list = DiagramModelUtils.findDiagramModelObjectsForElement(role);
assertEquals(2, list.size());
list = DiagramModelUtils.findDiagramModelConnectionsForRelation(relation);
assertEquals(2, list.size());
}
use of com.archimatetool.model.IArchimateModel in project archi by archimatetool.
the class ArchiMate2To3HandlerTests method testIsArchimate2Model.
@Test
public void testIsArchimate2Model() {
IArchimateModel model = IArchimateFactory.eINSTANCE.createArchimateModel();
String[] oldVersions = { "1.1.0", "2.0.0", "2.1.0", "2.3.0", "3.0.0", "3.1.0", "3.2.0", "3.2.1", "3.3.0", "3.3.1", "3.3.2" };
for (String version : oldVersions) {
model.setVersion(version);
assertTrue(handler.isArchimate2Model(model));
}
String[] newVersions = { "4.0.0", "4.0.1", "4.1.0", "4.1.1", "4.2.0", "5.0.0" };
for (String version : newVersions) {
model.setVersion(version);
assertFalse(handler.isArchimate2Model(model));
}
}
Aggregations