示例#1
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));
 }
示例#2
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));
       }
     }
   }
 }