Esempio n. 1
0
 /**
  * Try creating a stereotype for every modelelement type.
  *
  * @param f the factory containing the creation function for all the given metamodel element names
  * @param names the metamodel element names
  */
 public static void isValidStereoType(Object f, Iterable<String> names) {
   try {
     Object ns = Model.getModelManagementFactory().createPackage();
     Object clazz = Model.getCoreFactory().buildClass(ns);
     Object stereo1 = Model.getExtensionMechanismsFactory().buildStereotype(clazz, "test1", ns);
     for (String name : names) {
       Method m = findMethod(f.getClass(), Factory.class, "create" + name, new Class[] {});
       if (m == null) {
         TestCase.fail("Failed to find method create" + name);
       }
       Object base = m.invoke(f, new Object[] {});
       if (Model.getFacade().isAModelElement(base)) {
         Object stereo2 = Model.getExtensionMechanismsFactory().buildStereotype(base, "test2", ns);
         TestCase.assertTrue(
             "Unexpected invalid stereotype",
             Model.getExtensionMechanismsHelper().isValidStereotype(base, stereo2));
         if (!(Model.getFacade().isAClass(base))) {
           TestCase.assertTrue(
               "Stereotype with base class of Class" + " incorrectly allowed for this metaclass",
               !Model.getExtensionMechanismsHelper().isValidStereotype(base, stereo1));
         } else {
           Object inter = Model.getCoreFactory().createInterface();
           Object stereo3 =
               Model.getExtensionMechanismsFactory().buildStereotype(inter, "test3", ns);
           TestCase.assertTrue(
               "Unexpected invalid stereotype",
               !Model.getExtensionMechanismsHelper().isValidStereotype(base, stereo3));
         }
       }
     }
   } catch (Exception ex) {
     ex.printStackTrace();
     TestCase.fail("Exception during test metaModelnameCorrect. Message: " + ex.getMessage());
   }
 }
  /** 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());
  }
 /** Test if the ExtensionMechanismsFactory is really a singleton. */
 public void testSingleton() {
   Object o1 = Model.getExtensionMechanismsFactory();
   Object o2 = Model.getExtensionMechanismsFactory();
   assertTrue("Different singletons", o1 == o2);
 }