/** Test cascading delete to make sure dependent elements disappear. */ public void testDelete() { ExtensionMechanismsFactory emFactory = Model.getExtensionMechanismsFactory(); ExtensionMechanismsHelper emHelper = Model.getExtensionMechanismsHelper(); Object model = Model.getModelManagementFactory().createModel(); Model.getModelManagementFactory().setRootModel(model); Object stereo = emFactory.buildStereotype("mystereo", model); Object td = emFactory.buildTagDefinition("myTD", stereo, null); Object tv = emFactory.buildTaggedValue(td, new String[] {"the tag value"}); Object clazz = Model.getCoreFactory().buildClass("MyClass", model); emHelper.addTaggedValue(clazz, tv); Collection tvs = Model.getFacade().getTaggedValuesCollection(clazz); assertEquals("Wrong number of TaggedValues returned", 1, tvs.size()); assertTrue("TaggedValue not found", tvs.contains(tv)); Collection tds = Model.getModelManagementHelper() .getAllModelElementsOfKind(model, Model.getMetaTypes().getTagDefinition()); assertEquals("TagDefinition not found", 1, tds.size()); // Deleting the stereotype should cascade to the TagDefinition, // then the TaggedValue Model.getUmlFactory().delete(stereo); Model.getPump().flushModelEvents(); tvs = Model.getFacade().getTaggedValuesCollection(clazz); assertEquals("TaggedValue not deleted", 0, tvs.size()); tds = Model.getModelManagementHelper() .getAllModelElementsOfKind(model, Model.getMetaTypes().getTagDefinition()); assertEquals("TagDefinition not deleted", 0, tds.size()); }
/** Test creation. */ public void testCreates() { CheckUMLModelHelper.createAndRelease( Model.getExtensionMechanismsFactory(), getTestableModelElements()); ExtensionMechanismsFactory emFactory = Model.getExtensionMechanismsFactory(); Object model = Model.getModelManagementFactory().createModel(); Object stereo = emFactory.buildStereotype("mystereo1", model); try { emFactory.buildTagDefinition("myTDx", stereo, model); fail("Illegal buildTagDefinition with both sterotype" + " and model didn't throw exception."); } catch (IllegalArgumentException e) { // Expected } emFactory.buildTagDefinition("myTD1", stereo, null); emFactory.buildTagDefinition("myTD2", stereo, null, "Boolean"); Collection tds = Model.getModelManagementHelper() .getAllModelElementsOfKind(model, Model.getMetaTypes().getTagDefinition()); assertEquals("TagDefinition not deleted", 2, tds.size()); }