Beispiel #1
0
  public void testGetCompatibleType_06() {
    EDataType aCharSequence = createEDataType("a", CharSequence.class);
    EDataType anAppendable = createEDataType("b", Appendable.class);

    assertSame(null, EcoreUtil2.getCompatibleType(aCharSequence, anAppendable));
    assertSame(null, EcoreUtil2.getCompatibleType(anAppendable, aCharSequence));
  }
Beispiel #2
0
  public void testGetCompatibleType_05() {
    EDataType aString = createEDataType("a", String.class);
    EDataType anObject = createEDataType("b", Object.class);

    assertSame(anObject, EcoreUtil2.getCompatibleType(aString, anObject));
    assertSame(anObject, EcoreUtil2.getCompatibleType(anObject, aString));
  }
Beispiel #3
0
  public void testGetCompatibleType_04() {
    EDataType aString = createEDataType("a", String.class);
    EDataType anotherString = createEDataType("b", String.class);

    assertSame(aString, EcoreUtil2.getCompatibleType(aString, anotherString));
    assertSame(anotherString, EcoreUtil2.getCompatibleType(anotherString, aString));
  }
Beispiel #4
0
  public void testGetAllSuperTypesWithCycle() {
    EClass a = createEClass("a");
    EClass b = createEClass("b");
    b.getESuperTypes().add(a);
    a.getESuperTypes().add(b);

    // inconsistent and quasi-unpredictable in complex scenarios due to caching
    assertTrue(a.getEAllSuperTypes().contains(a));
    assertFalse(b.getEAllSuperTypes().contains(b));

    // always stable
    assertTrue(EcoreUtil2.getAllSuperTypes(a).contains(a));
    assertTrue(EcoreUtil2.getAllSuperTypes(b).contains(b));
  }
Beispiel #5
0
  public void testEPackageURI() throws Exception {
    ResourceSet rs = new ResourceSetImpl();
    Resource foo =
        rs.createResource(URI.createURI("foo.xmi"), ContentHandler.UNSPECIFIED_CONTENT_TYPE);
    EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage();
    foo.getContents().add(ePackage);

    assertEquals(true, EcoreUtil2.isValidUri(ePackage, URI.createURI(EcorePackage.eNS_URI)));
  }
Beispiel #6
0
 public void testExternalFormOfEReference() throws Exception {
   Registry registry = EPackage.Registry.INSTANCE;
   Set<String> uris = Sets.newHashSet(registry.keySet());
   for (String string : uris) {
     EPackage ePackage = registry.getEPackage(string);
     TreeIterator<Object> iterator = EcoreUtil.getAllProperContents(ePackage, true);
     while (iterator.hasNext()) {
       Object next = iterator.next();
       if (next instanceof EReference) {
         EReference ref = (EReference) next;
         String externalForm = EcoreUtil2.toExternalForm(ref);
         assertEquals(
             ref.toString() + " - " + externalForm,
             ref,
             EcoreUtil2.getEReferenceFromExternalForm(registry, externalForm));
       }
     }
   }
 }
Beispiel #7
0
  public void testCommonCompatibleType02() {
    EClass a = createEClass("a");
    EClass b = createEClass("b");
    EClass c = createEClass("c");
    EClass d = createEClass("d");
    EClass e = createEClass("e");

    b.getESuperTypes().add(a);
    c.getESuperTypes().add(a);
    d.getESuperTypes().add(b);
    d.getESuperTypes().add(c);
    e.getESuperTypes().add(b);
    e.getESuperTypes().add(c);

    assertSame(a, EcoreUtil2.getCompatibleType(a, a));

    assertSame(a, EcoreUtil2.getCompatibleType(b, c));
    assertSame(b, EcoreUtil2.getCompatibleType(b, d));
    assertSame(a, EcoreUtil2.getCompatibleType(d, e));
  }
Beispiel #8
0
  public void testCommonCompatibleType01() {
    EClass a = createEClass("a");
    EClass b = createEClass("b");
    EClass c = createEClass("c");
    EClass d = createEClass("d");
    EClass e = createEClass("e");
    EClass f = createEClass("f");

    c.getESuperTypes().add(a);
    d.getESuperTypes().add(c);
    d.getESuperTypes().add(b);
    e.getESuperTypes().add(c);
    f.getESuperTypes().add(a);
    f.getESuperTypes().add(b);
    f.getESuperTypes().add(e);

    assertSame(a, EcoreUtil2.getCompatibleType(a, a));
    assertSame(EOBJECT, EcoreUtil2.getCompatibleType(d, f));
    assertSame(c, EcoreUtil2.getCompatibleType(d, e));
    assertSame(b, EcoreUtil2.getCompatibleType(b, f));
    assertSame(EOBJECT, EcoreUtil2.getCompatibleType(b, c));
  }
Beispiel #9
0
  public void testGetAllReferencedObjects() {
    EClass a = createEClass("a");
    EClass b = createEClass("b");

    EPackage pack = EcoreFactory.eINSTANCE.createEPackage();
    pack.setName("empty");
    pack.setNsPrefix("empty");
    pack.setNsURI("empty");
    pack.getEClassifiers().add(a);
    pack.getEClassifiers().add(b);

    EReference ref = EcoreFactory.eINSTANCE.createEReference();
    a.getEStructuralFeatures().add(ref);
    ref.setUpperBound(1);
    ref.setEType(b);
    EObject objA = pack.getEFactoryInstance().create(a);
    EObject objB = pack.getEFactoryInstance().create(b);
    List<EObject> res = EcoreUtil2.getAllReferencedObjects(objA, ref);
    assertNotNull(res);
    assertTrue(res.isEmpty());
    res = EcoreUtil2.getAllReferencedObjects(objA, ref);
    assertNotNull(res);
    objA.eSet(ref, objB);
  }
Beispiel #10
0
  public void testClone() throws Exception {
    Resource.Factory.Registry.INSTANCE
        .getExtensionToFactoryMap()
        .put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
    EPackage.Registry.INSTANCE.put(EcorePackage.eINSTANCE.getNsURI(), EcorePackage.eINSTANCE);

    ResourceSetImpl rs = new ResourceSetImpl();
    Resource r1 =
        rs.createResource(URI.createURI("foo.xmi"), ContentHandler.UNSPECIFIED_CONTENT_TYPE);
    Resource r2 =
        rs.createResource(URI.createURI("bar.xmi"), ContentHandler.UNSPECIFIED_CONTENT_TYPE);
    EClass a = EcoreFactory.eINSTANCE.createEClass();
    a.setName("a");
    EClass b = EcoreFactory.eINSTANCE.createEClass();
    r1.getContents().add(a);
    b.setName("b");
    b.getESuperTypes().add(a);
    r2.getContents().add(b);

    ResourceSetImpl clone = EcoreUtil2.clone(new ResourceSetImpl(), rs);
    EList<Resource> list = clone.getResources();

    Resource resA = list.get(0);
    assertEquals(URI.createURI("foo.xmi"), resA.getURI());
    assertNotSame(resA, r1);

    Resource resB = list.get(1);
    assertEquals(URI.createURI("bar.xmi"), resB.getURI());
    assertNotSame(resB, r2);

    EClass a1 = (EClass) resA.getContents().get(0);
    EClass b1 = (EClass) resB.getContents().get(0);
    assertEquals("a", a1.getName());
    assertNotSame(a, a1);
    assertEquals("b", b1.getName());
    assertNotSame(b, b1);
    assertSame(b1.getESuperTypes().get(0), a1);
    assertSame(b.getESuperTypes().get(0), a);
  }
Beispiel #11
0
 /** This test assumes that an EPackage with indexed references is no longer available. */
 public void testExternalFormOfEReferenceNoNPE() throws Exception {
   EReference reference = EcorePackage.Literals.EATTRIBUTE__EATTRIBUTE_TYPE;
   URI uri = EcoreUtil.getURI(reference);
   String externalForm = uri.toString();
   EReference foundReference =
       EcoreUtil2.getEReferenceFromExternalForm(EPackage.Registry.INSTANCE, externalForm);
   assertSame(reference, foundReference);
   String brokenExternalFrom = Strings.toFirstUpper(externalForm);
   assertNull(
       EcoreUtil2.getEReferenceFromExternalForm(EPackage.Registry.INSTANCE, brokenExternalFrom));
   String shortExternalForm = EcoreUtil2.toExternalForm(reference);
   foundReference =
       EcoreUtil2.getEReferenceFromExternalForm(EPackage.Registry.INSTANCE, shortExternalForm);
   assertSame(reference, foundReference);
   String brokenShortExternalFrom = Strings.toFirstUpper(shortExternalForm);
   assertNull(
       EcoreUtil2.getEReferenceFromExternalForm(
           EPackage.Registry.INSTANCE, brokenShortExternalFrom));
   brokenShortExternalFrom = shortExternalForm.replace('A', 'a');
   assertNull(
       EcoreUtil2.getEReferenceFromExternalForm(
           EPackage.Registry.INSTANCE, brokenShortExternalFrom));
 }