package de.hub.emffrag.fragmentation;
import org.junit.Assert;
import org.junit.Test;
import de.hub.emffrag.model.emffrag.EmfFragPackage;
import de.hub.emffrag.testmodels.testmodel.frag.meta.TestModelPackage;
public class ReflectiveMetaModelRegistryTests extends AbstractTests {
@Test
public void testRegisteringMetaModelsWithReferencesToOtherMetaModels() {
ReflectiveMetaModelRegistry registry = ReflectiveMetaModelRegistry.instance;
registry.registerUserMetaModel(EmfFragPackage.eINSTANCE);
registry.registerUserMetaModel(TestModelPackage.eINSTANCE);
try {
Assert.assertNotSame("Registered opposite is the same as the original.",
TestModelPackage.eINSTANCE.getTestObject(), registry.getInternalClass(TestModelPackage.eINSTANCE.getTestObject()));
Assert.assertNotSame("Registered opposite is the same as the original.",
TestModelPackage.eINSTANCE.getTestObjectIndex(), registry.getInternalClass(TestModelPackage.eINSTANCE.getTestObjectIndex()));
Assert.assertNotSame("Registered opposite is the same as the original.",
EmfFragPackage.eINSTANCE.getRoot(), registry.getInternalClass(EmfFragPackage.eINSTANCE.getRoot()));
Assert.assertNotSame("Registered opposite is the same as the original.",
EmfFragPackage.eINSTANCE.getRoot_Contents(), registry.getInternalFeature(EmfFragPackage.eINSTANCE.getRoot_Contents()));
} catch (Exception e) {
Assert.fail("Could not retrive the opposite of a referenced meta-model element: " + e.getMessage());
}
}
}