diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo')
6 files changed, 102 insertions, 10 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsAllConfigs.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsAllConfigs.java index 1ad89757dc..d3f6d6b118 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsAllConfigs.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTestsAllConfigs.java @@ -4,7 +4,7 @@ * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html - * + * * Contributors: * Eike Stepper - initial API and implementation */ @@ -49,6 +49,7 @@ import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_270429_Test; import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_272861_Test; import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_273233_Test; import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_273565_Test; +import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_273758_Test; import org.eclipse.emf.cdo.tests.config.impl.ConfigTest; import org.eclipse.emf.cdo.tests.config.impl.ConfigTestSuite; @@ -145,6 +146,7 @@ public abstract class AllTestsAllConfigs extends ConfigTestSuite testClasses.add(Bugzilla_272861_Test.class); testClasses.add(Bugzilla_273233_Test.class); testClasses.add(Bugzilla_273565_Test.class); + testClasses.add(Bugzilla_273758_Test.class); // TODO testClasses.add(NonCDOResourceTest.class); // TODO testClasses.add(GeneratedEcoreTest.class); diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/EMFTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/EMFTest.java index 5b918bc5fd..1eabe5eb63 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/EMFTest.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/EMFTest.java @@ -10,9 +10,8 @@ */ package org.eclipse.emf.cdo.tests; -import org.eclipse.emf.cdo.common.model.EMFUtil; - import org.eclipse.net4j.tests.AbstractOMTest; +import org.eclipse.net4j.tests.TestEMFUtil; import org.eclipse.net4j.util.io.IOUtil; import org.eclipse.emf.common.util.URI; @@ -37,7 +36,7 @@ public class EMFTest extends AbstractOMTest public void testProxy() throws Exception { - EPackage model2 = (EPackage)EMFUtil.loadXMI("model2.ecore"); + EPackage model2 = (EPackage)TestEMFUtil.loadXMI("model2.ecore"); EClass companyProxy = (EClass)model2.getEClassifier("CompanyProxy"); EReference reference = (EReference)companyProxy.getEStructuralFeature("company"); diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/GeneratedEcoreTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/GeneratedEcoreTest.java index f3e481d107..c7bb22df1c 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/GeneratedEcoreTest.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/GeneratedEcoreTest.java @@ -10,12 +10,13 @@ */ package org.eclipse.emf.cdo.tests; -import org.eclipse.emf.cdo.common.model.EMFUtil; import org.eclipse.emf.cdo.eresource.CDOResource; import org.eclipse.emf.cdo.session.CDOSession; import org.eclipse.emf.cdo.transaction.CDOTransaction; import org.eclipse.emf.cdo.util.CDOUtil; +import org.eclipse.net4j.tests.TestEMFUtil; + import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; @@ -40,7 +41,7 @@ public class GeneratedEcoreTest extends AbstractCDOTest CDOTransaction transaction1 = session1.openTransaction(); CDOResource res1 = transaction1.createResource("/res"); - EPackage root1 = (EPackage)EMFUtil.loadEcore("model1.ecore", session1.getPackageRegistry()); + EPackage root1 = (EPackage)TestEMFUtil.loadEcore("model1.ecore", session1.getPackageRegistry()); res1.getContents().add(root1); transaction1.commit(); @@ -55,7 +56,7 @@ public class GeneratedEcoreTest extends AbstractCDOTest assertEquals(res2, root2.eResource()); CDOUtil.load(root2, transaction2); - EMFUtil.saveEcore("model1X.ecore", root2); + TestEMFUtil.saveEcore("model1X.ecore", root2); // assertTrue("Models differ", EcoreUtil.equals(root1, root2)); } } diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/LockingManagerTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/LockingManagerTest.java index 5d1634ab7d..ee974f0a86 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/LockingManagerTest.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/LockingManagerTest.java @@ -204,6 +204,7 @@ public class LockingManagerTest extends AbstractCDOTest CDOObject cdoCompany2 = CDOUtil.getCDOObject(company2); transaction.commit(); + try { cdoCompany2.cdoReadLock().lock(); @@ -211,8 +212,8 @@ public class LockingManagerTest extends AbstractCDOTest } catch (IllegalArgumentException ex) { - } + assertEquals(false, cdoCompany2.cdoReadLock().isLocked()); assertEquals(false, cdoCompany2.cdoReadLock().isLockedByOthers()); } diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_273565_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_273565_Test.java index 2ed15dd435..b04e46667b 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_273565_Test.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_273565_Test.java @@ -153,6 +153,7 @@ public class Bugzilla_273565_Test extends AbstractCDOTest Thread.sleep(100); } + transaction.getLock().lock(); transaction.getLock().unlock(); @@ -178,7 +179,6 @@ public class Bugzilla_273565_Test extends AbstractCDOTest for (int i = 0; i < 50 && exception[0] == null; i++) { - orderDetail.setPrice(1); CDOUtil.getCDOObject(orderDetail.getOrder()).cdoWriteLock().lock(); orderDetail.getOrder().getOrderDetails().add(getModel1Factory().createOrderDetail()); @@ -194,6 +194,7 @@ public class Bugzilla_273565_Test extends AbstractCDOTest Thread.sleep(100); } + transaction.getLock().lock(); transaction.getLock().unlock(); } @@ -255,7 +256,6 @@ public class Bugzilla_273565_Test extends AbstractCDOTest CDOUtil.getCDOObject(orderDetail).cdoWriteLock().lock(); orderDetail.setPrice(1); transaction.commit(); - } done[0] = true; diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_273758_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_273758_Test.java new file mode 100644 index 0000000000..71f6c93ccd --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_273758_Test.java @@ -0,0 +1,89 @@ +/** + * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Victor Roldan Betancort - initial API and implementation + */ +package org.eclipse.emf.cdo.tests.bugzilla; + +import org.eclipse.emf.cdo.eresource.CDOResource; +import org.eclipse.emf.cdo.session.CDOSession; +import org.eclipse.emf.cdo.tests.AbstractCDOTest; +import org.eclipse.emf.cdo.tests.model1.Model1Package; +import org.eclipse.emf.cdo.tests.model1.OrderDetail; +import org.eclipse.emf.cdo.tests.model1.Product1; +import org.eclipse.emf.cdo.transaction.CDOTransaction; + +import org.eclipse.net4j.tests.TestEMFUtil; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.util.EcoreUtil; + +import java.io.File; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * Export resource miss all of the oneToMany references + * <p> + * See https://bugs.eclipse.org/273758 + * + * @author Victor Roldan Betancort + */ +public class Bugzilla_273758_Test extends AbstractCDOTest +{ + public void test_export_resource_contents() throws Exception + { + { + // Create 3 root objects: 1 Product1, 2 OrderDetails. + // Product1 will reference both OrderDetails + + Product1 product = getModel1Factory().createProduct1(); + OrderDetail detail1 = getModel1Factory().createOrderDetail(); + detail1.setPrice(1.99f); + OrderDetail detail2 = getModel1Factory().createOrderDetail(); + detail2.setPrice(9.99f); + + product.getOrderDetails().add(detail1); + product.getOrderDetails().add(detail2); + + CDOSession session = openModel1Session(); + CDOTransaction transaction = session.openTransaction(); + CDOResource resource = transaction.createResource("/test1"); + + resource.getContents().add(product); + resource.getContents().add(detail1); + resource.getContents().add(detail2); + + transaction.commit(); + session.close(); + } + + { + CDOSession session = openModel1Session(); + CDOTransaction transaction = session.openTransaction(); + CDOResource resource = transaction.getResource("/test1"); + + Product1 product2 = (Product1)resource.getContents().get(0); + // Check in memory Product1 EObject reference integrity + assertEquals(2, product2.getOrderDetails().size()); + + Collection<EObject> collection = EcoreUtil.copyAll(resource.getContents()); + List<EObject> sourceContents = new ArrayList<EObject>(collection); + + // Target Resource + File file = File.createTempFile("exportModel1", null); + String tempFileURI = file.toURI().toString(); + TestEMFUtil.saveXMI(tempFileURI, sourceContents); + + List<EObject> list = TestEMFUtil.loadXMIMultiple(tempFileURI, Model1Package.eINSTANCE); + Product1 product3 = (Product1)list.get(0); + assertEquals(2, product3.getOrderDetails().size()); + } + } +} |