Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2016-09-03 08:28:27 +0000
committerEike Stepper2016-09-03 08:28:27 +0000
commitdae48587ae2860f74865536953122a28247d4a44 (patch)
treecd0d6d0404979420b35afceef9087952b1db2064 /plugins/org.eclipse.emf.cdo.tests/src
parent2bf20add550a863a153f8e3a64737a4c7337c0ce (diff)
downloadcdo-dae48587ae2860f74865536953122a28247d4a44.tar.gz
cdo-dae48587ae2860f74865536953122a28247d4a44.tar.xz
cdo-dae48587ae2860f74865536953122a28247d4a44.zip
[467075] Provide ECrossReferenceAdapter that does not recreate removed CDOResource
https://bugs.eclipse.org/bugs/show_bug.cgi?id=467075
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src')
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_467075_Test.java77
1 files changed, 77 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_467075_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_467075_Test.java
new file mode 100644
index 0000000000..a8ee01f521
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_467075_Test.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2016 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:
+ * Eike Stepper - 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.Company;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.cdo.util.CDOCrossReferenceAdapter;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.ECrossReferenceAdapter;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+
+/**
+ * Bug 467075 - Provide ECrossReferenceAdapter that does not recreate removed CDOResource
+ *
+ * @author Eike Stepper
+ */
+public class Bugzilla_467075_Test extends AbstractCDOTest
+{
+ public void testResourceSetRemoveCDOResource() throws Exception
+ {
+ ECrossReferenceAdapter adapter = createAdapter();
+ Company company = getModel1Factory().createCompany();
+
+ CDOSession session = openSession();
+ CDOTransaction transaction = session.openTransaction();
+ CDOResource resource = transaction.createResource(getResourcePath("test1.model1"));
+ resource.getContents().add(company);
+ transaction.commit();
+
+ doTest(transaction.getResourceSet(), resource, adapter);
+ }
+
+ public void testResourceSetRemoveXMIResource() throws Exception
+ {
+ Company company = getModel1Factory().createCompany();
+ ECrossReferenceAdapter adapter = createAdapter();
+
+ Resource.Factory.Registry registry = Resource.Factory.Registry.INSTANCE;
+ registry.getExtensionToFactoryMap().put("model1", new XMIResourceFactoryImpl());
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ URI uri = URI.createFileURI(createTempFile("resource", ".model1").getCanonicalPath());
+ Resource resource = resourceSet.createResource(uri);
+ resource.getContents().add(company);
+ resource.save(null);
+
+ doTest(resourceSet, resource, adapter);
+ }
+
+ private ECrossReferenceAdapter createAdapter()
+ {
+ return new CDOCrossReferenceAdapter();
+ }
+
+ private void doTest(ResourceSet resourceSet, Resource resource, ECrossReferenceAdapter adapter)
+ {
+ resource.eAdapters().add(adapter);
+ resourceSet.getResources().remove(resource);
+ resource.eAdapters().remove(adapter);
+ assertEquals(0, resourceSet.getResources().size());
+ }
+}

Back to the top