Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2008-09-18 12:57:24 +0000
committerEike Stepper2008-09-18 12:57:24 +0000
commit25059b9f4277a331568ced5198fc87177c97a0df (patch)
tree8b93331ef33c0e990b9d934aaa541544e6e78891 /plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java
parentfc9b00dd988bddeb67ab89f6c077cb7eb8a5dcc6 (diff)
downloadcdo-25059b9f4277a331568ced5198fc87177c97a0df.tar.gz
cdo-25059b9f4277a331568ced5198fc87177c97a0df.tar.xz
cdo-25059b9f4277a331568ced5198fc87177c97a0df.zip
[247226] Transparently support legacy models
https://bugs.eclipse.org/bugs/show_bug.cgi?id=247226
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java275
1 files changed, 229 insertions, 46 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java
index 9ba8ebd20e..6a07b4d6ab 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java
@@ -19,17 +19,29 @@ import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.server.CDOServerUtil;
import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.IStore;
+import org.eclipse.emf.cdo.tests.legacy.LegacyPackage;
+import org.eclipse.emf.cdo.tests.mango.MangoFactory;
+import org.eclipse.emf.cdo.tests.mango.MangoPackage;
+import org.eclipse.emf.cdo.tests.model1.Model1Factory;
import org.eclipse.emf.cdo.tests.model1.Model1Package;
+import org.eclipse.emf.cdo.tests.model2.Model2Factory;
import org.eclipse.emf.cdo.tests.model2.Model2Package;
+import org.eclipse.emf.cdo.tests.model3.Model3Factory;
import org.eclipse.emf.cdo.tests.model3.Model3Package;
+import org.eclipse.emf.cdo.tests.model4.model4Factory;
+import org.eclipse.emf.cdo.tests.model4.model4Package;
+import org.eclipse.emf.cdo.tests.model4interfaces.model4interfacesPackage;
import org.eclipse.emf.cdo.util.CDOUtil;
+import org.eclipse.emf.internal.cdo.CDOLegacyWrapper;
import org.eclipse.emf.internal.cdo.util.FSMUtil;
import org.eclipse.net4j.tests.AbstractTransportTest;
import org.eclipse.net4j.util.container.IManagedContainer;
import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.emf.ecore.EObject;
+
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@@ -43,12 +55,14 @@ public abstract class AbstractCDOTest extends AbstractTransportTest
{
public static final String REPOSITORY_NAME = "repo1";
+ protected static boolean legacyTesting = false;
+
@Override
protected IManagedContainer createContainer()
{
LifecycleUtil.deactivate(container);
IManagedContainer container = super.createContainer();
- CDOUtil.prepareContainer(container, false);
+ CDOUtil.prepareContainer(container);
CDOServerUtil.prepareContainer(container);
CDOServerUtil.addRepository(container, createRepository());
return container;
@@ -95,115 +109,284 @@ public abstract class AbstractCDOTest extends AbstractTransportTest
CDOSessionConfiguration configuration = CDOUtil.createSessionConfiguration();
configuration.setConnector(getConnector());
configuration.setRepositoryName(repoName);
- configuration.setLegacySupportEnabled(false);
return configuration.openSession();
}
- protected CDOSession openModel1Session(String repoName)
- {
- CDOSession session = openSession(repoName);
- session.getPackageRegistry().putEPackage(Model1Package.eINSTANCE);
- return session;
- }
-
protected CDOSession openSession()
{
CDOSessionConfiguration configuration = CDOUtil.createSessionConfiguration();
configuration.setConnector(getConnector());
configuration.setRepositoryName(REPOSITORY_NAME);
- configuration.setLegacySupportEnabled(false);
return configuration.openSession();
}
+ protected CDOSession openModel1Session(String repoName)
+ {
+ CDOSession session = openSession(repoName);
+ session.getPackageRegistry().putEPackage(getModel1Package());
+ return session;
+ }
+
protected CDOSession openModel1Session()
{
CDOSession session = openSession();
- session.getPackageRegistry().putEPackage(Model1Package.eINSTANCE);
+ session.getPackageRegistry().putEPackage(getModel1Package());
return session;
}
protected CDOSession openModel2Session()
{
CDOSession session = openModel1Session();
- session.getPackageRegistry().putEPackage(Model2Package.eINSTANCE);
+ session.getPackageRegistry().putEPackage(getModel2Package());
return session;
}
protected CDOSession openModel3Session()
{
CDOSession session = openSession();
- session.getPackageRegistry().putEPackage(Model3Package.eINSTANCE);
+ session.getPackageRegistry().putEPackage(getModel3Package());
return session;
}
- protected static void assertTransient(CDOObject object)
+ protected CDOSession openMangoSession()
+ {
+ CDOSession session = openSession();
+ session.getPackageRegistry().putEPackage(getMangoPackage());
+ return session;
+ }
+
+ protected CDOSession openLegacySession()
+ {
+ CDOSession session = openSession();
+ session.getPackageRegistry().putEPackage(LegacyPackage.eINSTANCE);
+ return session;
+ }
+
+ protected static void assertTransient(EObject eObject)
+ {
+ CDOObject object = CDOUtil.getCDOObject(eObject);
+ if (object != null)
+ {
+ assertEquals(true, FSMUtil.isTransient(object));
+ }
+ }
+
+ protected static MangoFactory getMangoFactory()
+ {
+ if (legacyTesting)
+ {
+ return org.eclipse.emf.cdo.tests.legacy.mango.MangoFactory.eINSTANCE;
+ }
+
+ return org.eclipse.emf.cdo.tests.mango.MangoFactory.eINSTANCE;
+ }
+
+ protected static MangoPackage getMangoPackage()
+ {
+ if (legacyTesting)
+ {
+ return org.eclipse.emf.cdo.tests.legacy.mango.MangoPackage.eINSTANCE;
+ }
+
+ return org.eclipse.emf.cdo.tests.mango.MangoPackage.eINSTANCE;
+ }
+
+ protected static Model1Factory getModel1Factory()
+ {
+ if (legacyTesting)
+ {
+ return org.eclipse.emf.cdo.tests.legacy.model1.Model1Factory.eINSTANCE;
+ }
+
+ return org.eclipse.emf.cdo.tests.model1.Model1Factory.eINSTANCE;
+ }
+
+ protected static Model1Package getModel1Package()
+ {
+ if (legacyTesting)
+ {
+ return org.eclipse.emf.cdo.tests.legacy.model1.Model1Package.eINSTANCE;
+ }
+
+ return org.eclipse.emf.cdo.tests.model1.Model1Package.eINSTANCE;
+ }
+
+ protected static Model2Factory getModel2Factory()
+ {
+ if (legacyTesting)
+ {
+ return org.eclipse.emf.cdo.tests.legacy.model2.Model2Factory.eINSTANCE;
+ }
+
+ return org.eclipse.emf.cdo.tests.model2.Model2Factory.eINSTANCE;
+ }
+
+ protected static Model2Package getModel2Package()
+ {
+ if (legacyTesting)
+ {
+ return org.eclipse.emf.cdo.tests.legacy.model2.Model2Package.eINSTANCE;
+ }
+
+ return org.eclipse.emf.cdo.tests.model2.Model2Package.eINSTANCE;
+ }
+
+ protected static Model3Factory getModel3Factory()
+ {
+ if (legacyTesting)
+ {
+ return org.eclipse.emf.cdo.tests.legacy.model3.Model3Factory.eINSTANCE;
+ }
+
+ return org.eclipse.emf.cdo.tests.model3.Model3Factory.eINSTANCE;
+ }
+
+ protected static Model3Package getModel3Package()
+ {
+ if (legacyTesting)
+ {
+ return org.eclipse.emf.cdo.tests.legacy.model3.Model3Package.eINSTANCE;
+ }
+
+ return org.eclipse.emf.cdo.tests.model3.Model3Package.eINSTANCE;
+ }
+
+ protected static model4Factory getModel4Factory()
+ {
+ if (legacyTesting)
+ {
+ return org.eclipse.emf.cdo.tests.legacy.model4.model4Factory.eINSTANCE;
+ }
+
+ return org.eclipse.emf.cdo.tests.model4.model4Factory.eINSTANCE;
+ }
+
+ protected static model4Package getModel4Package()
+ {
+ if (legacyTesting)
+ {
+ return org.eclipse.emf.cdo.tests.legacy.model4.model4Package.eINSTANCE;
+ }
+
+ return org.eclipse.emf.cdo.tests.model4.model4Package.eINSTANCE;
+ }
+
+ protected static model4interfacesPackage getModel4InterfacesPackage()
+ {
+ if (legacyTesting)
+ {
+ return org.eclipse.emf.cdo.tests.legacy.model4interfaces.model4interfacesPackage.eINSTANCE;
+ }
+
+ return org.eclipse.emf.cdo.tests.model4interfaces.model4interfacesPackage.eINSTANCE;
+ }
+
+ public static void assertEquals(Object expected, Object actual)
{
- assertTrue(FSMUtil.isTransient(object));
- // assertEquals(null, object.cdoID());
- // assertEquals(null, object.cdoRevision());
- // assertEquals(null, object.cdoView());
- // assertEquals(bject.eResource(), object.cdoResource());
- // assertEquals(null, object.cdoResource());
+ // IMPORTANT: Give possible CDOLegacyWrapper a chance for actual, too
+ if (actual != null && actual.equals(expected))
+ {
+ return;
+ }
+
+ AbstractTransportTest.assertEquals(expected, actual);
}
- protected static void assertNotTransient(CDOObject object, CDOView view)
+ public static void assertEquals(String message, Object expected, Object actual)
{
- assertFalse(FSMUtil.isTransient(object));
+ if (expected == null && actual == null)
+ {
+ return;
+ }
+
+ if (expected != null && expected.equals(actual))
+ {
+ return;
+ }
+
+ // IMPORTANT: Give possible CDOLegacyWrapper a chance for actual, too
+ if (actual != null && actual.equals(expected))
+ {
+ return;
+ }
+
+ failNotEquals(message, expected, actual);
+ }
+
+ protected static void assertNotTransient(EObject eObject, CDOView view)
+ {
+ CDOObject object = FSMUtil.adapt(eObject, view);
+ assertEquals(false, FSMUtil.isTransient(object));
assertNotNull(object.cdoID());
assertNotNull(object.cdoRevision());
assertNotNull(object.cdoView());
- // assertNotNull(object.cdoResource());
assertNotNull(object.eResource());
- // assertEquals(object.eResource(), object.cdoResource());
assertEquals(view, object.cdoView());
assertEquals(object, view.getObject(object.cdoID(), false));
}
- protected static void assertNew(CDOObject object, CDOView view)
+ protected static void assertNew(EObject eObject, CDOView view)
{
+ CDOObject object = FSMUtil.adapt(eObject, view);
assertNotTransient(object, view);
assertEquals(CDOState.NEW, object.cdoState());
}
- protected static void assertDirty(CDOObject object, CDOView view)
+ protected static void assertDirty(EObject eObject, CDOView view)
{
+ CDOObject object = FSMUtil.adapt(eObject, view);
assertNotTransient(object, view);
assertEquals(CDOState.DIRTY, object.cdoState());
}
- protected static void assertClean(CDOObject object, CDOView view)
+ protected static void assertClean(EObject eObject, CDOView view)
{
+ CDOObject object = FSMUtil.adapt(eObject, view);
assertNotTransient(object, view);
assertEquals(CDOState.CLEAN, object.cdoState());
}
- protected static void assertProxy(CDOObject object)
+ protected static void assertProxy(EObject eObject)
{
- assertFalse(FSMUtil.isTransient(object));
- assertNotNull(object.cdoID());
- assertNotNull(object.cdoView());
- assertNotNull(object.cdoResource());
- assertNotNull(object.eResource());
- assertEquals(object.eResource(), object.cdoResource());
- assertEquals(CDOState.PROXY, object.cdoState());
+ CDOObject object = CDOUtil.getCDOObject(eObject);
+ if (object != null)
+ {
+ assertEquals(false, FSMUtil.isTransient(object));
+ assertNotNull(object.cdoID());
+ assertNotNull(object.cdoView());
+ assertNotNull(object.cdoResource());
+ assertNotNull(object.eResource());
+ assertEquals(object.eResource(), object.cdoResource());
+ assertEquals(CDOState.PROXY, object.cdoState());
+ }
}
- protected static void assertContent(CDOObject container, CDOObject contained)
+ protected static void assertContent(EObject eContainer, EObject eContained)
{
- assertEquals(container.eResource(), contained.eResource());
- assertTrue(container.eContents().contains(contained));
- if (container instanceof CDOResource)
- {
- assertEquals(container.eResource(), container.cdoResource());
- assertEquals(null, contained.eContainer());
- assertTrue(((CDOResource)container).getContents().contains(contained));
- }
- else
+ CDOObject container = CDOUtil.getCDOObject(eContainer);
+ CDOObject contained = CDOUtil.getCDOObject(eContained);
+ if (container != null && contained != null)
{
- assertEquals(container, contained.eContainer());
+ assertEquals(container.eResource(), contained.eResource());
+ assertEquals(true, container.eContents().contains(contained));
+ if (container instanceof CDOResource)
+ {
+ assertEquals(container.eResource(), container.cdoResource());
+ assertEquals(null, contained.eContainer());
+ assertEquals(true, ((CDOResource)container).getContents().contains(contained));
+ }
+ else
+ {
+ assertEquals(container, contained.eContainer());
+ }
}
}
+ protected static void assertNotProxy(Object object)
+ {
+ assertEquals(false, CDOLegacyWrapper.isLegacyProxy(object));
+ }
+
/**
* @author Eike Stepper
*/

Back to the top