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)); }
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)); }
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)); }
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)); }
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))); }
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)); } } } }
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)); }
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)); }
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); }
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); }
/** 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)); }