use of com.archimatetool.model.IArchimateModel in project archi by archimatetool.
the class EditorModelManagerTests method isModelDirty_Model.
@Test
public void isModelDirty_Model() {
IArchimateModel model = editorModelManager.createNewModel();
assertFalse(editorModelManager.isModelDirty(model));
// Execute simple command on Command Stack
Command cmd = new EObjectFeatureCommand("", model, IArchimatePackage.Literals.NAMEABLE__NAME, "Hello");
CommandStack stack = (CommandStack) model.getAdapter(CommandStack.class);
stack.execute(cmd);
assertTrue(editorModelManager.isModelDirty(model));
// Flush the Command Stack so we can close the model without a dialog asking us to save
stack.flush();
}
use of com.archimatetool.model.IArchimateModel in project archi by archimatetool.
the class EditorModelManagerTests method loadModel_File.
@Test
public void loadModel_File() {
File file = TestData.TEST_MODEL_FILE_ARCHISURANCE;
IArchimateModel model = editorModelManager.loadModel(file);
assertNotNull(model);
// File
assertEquals(file, model.getFile());
// Has a Command Stack
assertTrue(model.getAdapter(CommandStack.class) instanceof CommandStack);
// Has an Archive Manager
assertTrue(model.getAdapter(IArchiveManager.class) instanceof IArchiveManager);
// Has an ECore Adapter
assertTrue(hasECoreAdapter(model));
// Is registered
assertEquals(1, editorModelManager.getModels().size());
assertTrue(editorModelManager.getModels().contains(model));
// Do it again, should be the same
IArchimateModel model2 = editorModelManager.loadModel(file);
assertEquals(model2, model);
// Is not registered twice
editorModelManager.openModel(model);
assertEquals(1, editorModelManager.getModels().size());
}
use of com.archimatetool.model.IArchimateModel in project archi by archimatetool.
the class EditorModelManagerTests method openModel_Model.
@Test
public void openModel_Model() {
IArchimateModel model = IArchimateFactory.eINSTANCE.createArchimateModel();
model.setDefaults();
model.setName("Test");
editorModelManager.openModel(model);
// Has a Command Stack
assertTrue(model.getAdapter(CommandStack.class) instanceof CommandStack);
// Has an Archive Manager
assertTrue(model.getAdapter(IArchiveManager.class) instanceof IArchiveManager);
// Has an ECore Adapter
assertTrue(hasECoreAdapter(model));
// Is registered
assertEquals(1, editorModelManager.getModels().size());
assertTrue(editorModelManager.getModels().contains(model));
// Is not registered twice
editorModelManager.openModel(model);
assertEquals(1, editorModelManager.getModels().size());
}
use of com.archimatetool.model.IArchimateModel in project archi by archimatetool.
the class DeleteCommandHandlerTests method testDelete_More_Than_One_Model.
@Test
public void testDelete_More_Than_One_Model() throws IOException {
// Use another instance of the same model
ArchimateTestModel tm2 = new ArchimateTestModel(TEST_MODEL_FILE);
IArchimateModel model2 = tm2.loadModelWithCommandStack();
// Elements
String[] elementIDs = new String[] { "31a27739", "8ab84e91", "46d0abd5", "8ecabfc2" };
// Select them from both models
List<IArchimateElement> elements1 = new ArrayList<IArchimateElement>();
for (String id : elementIDs) {
elements1.add((IArchimateElement) ArchimateModelUtils.getObjectByID(model, id));
}
List<IArchimateElement> elements2 = new ArrayList<IArchimateElement>();
for (String id : elementIDs) {
elements2.add((IArchimateElement) ArchimateModelUtils.getObjectByID(model2, id));
}
List<IArchimateElement> allElements = new ArrayList<IArchimateElement>(elements1);
allElements.addAll(elements2);
assertEquals(8, allElements.size());
// Zap
DeleteCommandHandler commandHandler = new DeleteCommandHandler(treeModelViewer, allElements.toArray());
commandHandler.delete();
// Test that they are all gone in the models and in the referenced diagrams
for (IArchimateElement element : elements1) {
assertFalse(DiagramModelUtils.isArchimateConceptReferencedInDiagrams(element));
assertNull(ArchimateModelUtils.getObjectByID(model, element.getId()));
}
for (IArchimateElement element : elements2) {
assertFalse(DiagramModelUtils.isArchimateConceptReferencedInDiagrams(element));
assertNull(ArchimateModelUtils.getObjectByID(model2, element.getId()));
}
// And just for good measure, we'll undo it...once for each model
CommandStack commandStack1 = (CommandStack) model.getAdapter(CommandStack.class);
commandStack1.undo();
CommandStack commandStack2 = (CommandStack) model2.getAdapter(CommandStack.class);
commandStack2.undo();
// And find them all back again!
for (IArchimateElement element : elements1) {
assertTrue(DiagramModelUtils.isArchimateConceptReferencedInDiagrams(element));
assertNotNull(ArchimateModelUtils.getObjectByID(model, element.getId()));
}
for (IArchimateElement element : elements2) {
assertTrue(DiagramModelUtils.isArchimateConceptReferencedInDiagrams(element));
assertNotNull(ArchimateModelUtils.getObjectByID(model2, element.getId()));
}
}
use of com.archimatetool.model.IArchimateModel in project archi by archimatetool.
the class DuplicateCommandHandlerTests method testDuplicateDiagramModel.
@Test
public void testDuplicateDiagramModel() {
ArchimateTestModel tm = new ArchimateTestModel();
IArchimateModel model = tm.createNewModel();
IDiagramModel dm = model.getDefaultDiagramModel();
IArchimateElement actor = IArchimateFactory.eINSTANCE.createBusinessActor();
IDiagramModelArchimateObject dmo1 = tm.createDiagramModelArchimateObjectAndAddToModel(actor);
dmo1.setName("dm");
dm.getChildren().add(dmo1);
IArchimateElement role = IArchimateFactory.eINSTANCE.createBusinessRole();
IDiagramModelArchimateObject dmo2 = tm.createDiagramModelArchimateObjectAndAddToModel(role);
dm.getChildren().add(dmo2);
IArchimateRelationship relation = IArchimateFactory.eINSTANCE.createAssignmentRelationship();
relation.setSource(actor);
relation.setTarget(role);
IDiagramModelArchimateConnection dmc1 = tm.createDiagramModelArchimateConnectionAndAddToModel(relation);
dmc1.connect(dmo1, dmo2);
DuplicateCommandHandler handler = new DuplicateCommandHandler(new Object[] { dm });
handler.duplicate();
assertEquals(2, model.getDiagramModels().size());
IDiagramModel dmCopy = model.getDiagramModels().get(1);
assertNotSame(dm, dmCopy);
assertEquals(dm.getName() + " (copy)", dmCopy.getName());
EList<IDiagramModelObject> children = dmCopy.getChildren();
assertEquals(2, children.size());
IDiagramModelArchimateObject dmo1Copy = (IDiagramModelArchimateObject) children.get(0);
IDiagramModelArchimateObject dmo2Copy = (IDiagramModelArchimateObject) children.get(1);
assertNotSame(dmo1, dmo1Copy);
assertNotSame(dmo2, dmo2Copy);
assertSame(actor, dmo1Copy.getArchimateConcept());
assertSame(role, dmo2Copy.getArchimateConcept());
EList<IDiagramModelConnection> connections = dmo1Copy.getSourceConnections();
assertEquals(1, connections.size());
IDiagramModelArchimateConnection dmc1Copy = (IDiagramModelArchimateConnection) connections.get(0);
assertNotSame(dmc1, dmc1Copy);
assertSame(relation, dmc1Copy.getArchimateConcept());
}
Aggregations