package de.hub.emffrag.fragmentation; import junit.framework.Assert; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.junit.Test; import de.hub.emffrag.EmfFragActivator; import de.hub.emffrag.fragmentation.IndexBasedIdSemantics.IdBehaviour; import de.hub.emffrag.testmodels.testmodel.TestObject; import de.hub.emffrag.testmodels.testmodel.frag.meta.TestModelFactory; import de.hub.emffrag.util.EMFFragUtil; public class EmfFragUtilsTest extends AbstractFragmentationTests { @Test public void testNonFragmentingContents() { model.root().getContents().add(object1); object1.getRegularContents().add(object2); object2.getFragmentedContents().add(object3); object1.getCrossReferences().add(object3); Assert.assertEquals(2, EMFFragUtil.getAllNonFragmentingContents(((FObjectImpl)object1).fInternalObject()).size()); } @Test public void testToURI() { model.root().getContents().add(object1); object1.getRegularContents().add(object2); object2.getFragmentedContents().add(object3); object1.getCrossReferences().add(object3); URI uri = EMFFragUtil.getURI(object1); Assert.assertEquals(2, uri.segmentCount()); Assert.assertEquals("/", uri.fragment()); EObject resolvedObject = EMFFragUtil.resolveURI(uri, model); Assert.assertTrue(resolvedObject instanceof TestObject); Assert.assertEquals(object1.getName(), ((TestObject)resolvedObject).getName()); } // @Test public void testDynamicEObject() { EmfFragActivator.instance.idSemantics = new NoReferencesIdSemantics(IdBehaviour.preliminary); int i = 0; TestObject last = null; while (true) { i++; if (i % 1000 == 0) { System.gc(); } TestObject o = TestModelFactory.eINSTANCE.createTestObject(); if (last != null) { o.getCrossReferences().add(last); last.getCrossReferences().add(o); } last = o; } } }