Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverTest.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverTest.java
index 30969af852..78baeb647c 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverTest.java
@@ -11,6 +11,7 @@
*/
package org.eclipse.emf.cdo.tests;
+import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.session.CDOSession;
import org.eclipse.emf.cdo.tests.config.IModelConfig;
import org.eclipse.emf.cdo.tests.model1.Address;
@@ -182,6 +183,42 @@ public class ConflictResolverTest extends AbstractCDOTest
commitAndSync(transaction1, transaction2);
}
+ public void testMergeLocalChangesPerFeature_Bug3() throws Exception
+ {
+ CDOSession session = openSession();
+
+ CDOTransaction transaction1 = session.openTransaction();
+ transaction1.options().addConflictResolver(createConflictResolver());
+ CDOResource resource1 = transaction1.getOrCreateResource(getResourcePath("/res1"));
+ EList<EObject> contents1 = resource1.getContents();
+ // transaction1.commit();
+ contents1.add(getModel1Factory().createAddress());
+ contents1.add(getModel1Factory().createAddress());
+
+ // ----------------------------
+
+ CDOTransaction transaction2 = session.openTransaction();
+ transaction2.options().addConflictResolver(createConflictResolver());
+ CDOResource resource2 = transaction2.getOrCreateResource(getResourcePath("/res1"));
+ EList<EObject> contents2 = resource2.getContents();
+ contents2.add(getModel1Factory().createAddress());
+ contents2.remove(0);
+
+ // ----------------------------
+
+ CDOTransaction transaction3 = session.openTransaction();
+ transaction3.options().addConflictResolver(createConflictResolver());
+ CDOResource resource3 = transaction3.getOrCreateResource(getResourcePath("/res1"));
+ EList<EObject> contents3 = resource3.getContents();
+ contents3.add(getModel1Factory().createAddress());
+ contents3.add(getModel1Factory().createAddress());
+
+ // Resolvers should be triggered.
+ commitAndSync(transaction3, transaction2, transaction1);
+ commitAndSync(transaction2, transaction1, transaction3);
+ commitAndSync(transaction1, transaction2, transaction3);
+ }
+
public void testMerge_ManyValue() throws Exception
{
CDOSession session = openSession();

Back to the top