Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.compare.tests/src/org/eclipse')
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AbstractMergerTest.java111
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/Bug485266_MoveDeleteConflict_Test.java222
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/Bug485266InputData.java99
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/ancestor.ecore10
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/left.ecore6
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/result.ecore8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/right.ecore9
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/ancestor.ecore16
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/left.ecore6
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/result.ecore9
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/right.ecore14
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/ancestor.ecore13
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/left.ecore9
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/result.ecore11
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/right.ecore13
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/ancestor.ecore12
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/left.ecore6
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/result.ecore10
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/right.ecore10
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/ancestor.ecore10
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/left.ecore6
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/result.ecore10
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/right.ecore11
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/suite/AllTests.java6
24 files changed, 635 insertions, 2 deletions
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AbstractMergerTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AbstractMergerTest.java
new file mode 100644
index 000000000..1ac97f348
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AbstractMergerTest.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.merge;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.compare.Comparison;
+import org.eclipse.emf.compare.Diff;
+import org.eclipse.emf.compare.EMFCompare;
+import org.eclipse.emf.compare.merge.IMerger;
+import org.eclipse.emf.compare.merge.IMerger.Registry;
+import org.eclipse.emf.compare.scope.DefaultComparisonScope;
+import org.eclipse.emf.compare.scope.IComparisonScope;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.junit.Test;
+
+/**
+ * Abstract test class for merge tests. The class create a comparison for the given resources, merge given
+ * diffs to merge in the correct side then assert that the result is equal to a given resource. The
+ * responsibility of finding the diffs to merge is given to concrete classes since this is specific to each
+ * test.
+ *
+ * @author <a href="mailto:mathieu.cartaud@obeo.fr">Mathieu Cartaud</a>
+ */
+public abstract class AbstractMergerTest {
+
+ protected Resource origin;
+
+ protected Resource left;
+
+ protected Resource right;
+
+ protected Resource expected;
+
+ protected boolean rightToLeft;
+
+ protected Registry mergerRegistry;
+
+ protected Comparison comparison;
+
+ public AbstractMergerTest(final Resource origin, final Resource left, final Resource right,
+ final boolean rightToLeft, final Resource expected, IMerger.Registry mergerRegistry) {
+ this.origin = checkNotNull(origin);
+ this.left = checkNotNull(left);
+ this.right = checkNotNull(right);
+ this.expected = checkNotNull(expected);
+ this.rightToLeft = rightToLeft;
+ this.mergerRegistry = checkNotNull(mergerRegistry);
+ }
+
+ /**
+ * This class is implemented by client to get the diffs to merge for each specific test.
+ *
+ * @return the list of diffs to merge
+ */
+ protected abstract List<Diff> getDiffsToMerge();
+
+ @Test
+ public void runMergeTest() {
+ createComparison();
+ List<Diff> diffsToMerge = getDiffsToMerge();
+ mergeAndCompare(diffsToMerge);
+ }
+
+ /**
+ * Create the initial comparison.
+ */
+ protected void createComparison() {
+ IComparisonScope scope = new DefaultComparisonScope(left, right, origin);
+ comparison = EMFCompare.builder().build().compare(scope);
+ }
+
+ /**
+ * Merge the given diffs and assert that the result is identical with the expected result resource.
+ *
+ * @param diffsToMerge
+ * The list of diffs to merge
+ */
+ protected void mergeAndCompare(List<Diff> diffsToMerge) {
+ for (Diff diff : diffsToMerge) {
+ if (rightToLeft) {
+ mergerRegistry.getHighestRankingMerger(diff).copyRightToLeft(diff, new BasicMonitor());
+ } else {
+ mergerRegistry.getHighestRankingMerger(diff).copyLeftToRight(diff, new BasicMonitor());
+ }
+ }
+
+ IComparisonScope scope;
+ if (rightToLeft) {
+ scope = new DefaultComparisonScope(left, expected, null);
+ } else {
+ scope = new DefaultComparisonScope(right, expected, null);
+ }
+
+ comparison = EMFCompare.builder().build().compare(scope);
+ assertEquals(0, comparison.getDifferences().size());
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/Bug485266_MoveDeleteConflict_Test.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/Bug485266_MoveDeleteConflict_Test.java
new file mode 100644
index 000000000..692fc8d6c
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/Bug485266_MoveDeleteConflict_Test.java
@@ -0,0 +1,222 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.merge;
+
+import static org.eclipse.emf.compare.DifferenceKind.MOVE;
+import static org.eclipse.emf.compare.utils.EMFComparePredicates.ofKind;
+import static org.junit.Assert.assertEquals;
+
+import com.google.common.collect.Collections2;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.compare.Conflict;
+import org.eclipse.emf.compare.Diff;
+import org.eclipse.emf.compare.merge.IMerger;
+import org.eclipse.emf.compare.tests.merge.data.bug485266.Bug485266InputData;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+/**
+ * This class assert that EMFCompare correctly handle conflicts between the suppression of an element
+ * (packageA) on a side and the move of an other element (which is a child of packageA) on the other side.
+ *
+ * @author <a href="mailto:mathieu.cartaud@obeo.fr">Mathieu Cartaud</a>
+ */
+@RunWith(Parameterized.class)
+public class Bug485266_MoveDeleteConflict_Test extends AbstractMergerTest {
+
+ /**
+ * Create the list of parameters for the parametrized test. The parameters for each test is an object:
+ *
+ * <pre>
+ * Object[] {
+ * originResource,
+ * leftResource,
+ * rightResource,
+ * boolean for the merge direction,
+ * the resource we expect after the merge}
+ * </pre>
+ *
+ * @return the list of parameters for the tests
+ * @throws IOException
+ */
+ @SuppressWarnings({"boxing" })
+ @Parameters
+ public static Collection<Object[]> params() throws IOException {
+ Bug485266InputData inputData = new Bug485266InputData();
+
+ /**
+ * <pre>
+ * The ancestor:
+ * - root
+ * - packageA
+ * - nodeB
+ *
+ * The left model:
+ * - root
+ *
+ * The right model:
+ * - root
+ * - packageA
+ * - nodeB
+ *
+ * The correct result on the left side after a merge of the move of nodeB from right to left:
+ * - root
+ * - nodeB
+ * </pre>
+ */
+ Object[] test1RightToLeft = new Object[] {inputData.getData1AncestorResource(),
+ inputData.getData1LeftResource(), inputData.getData1RightResource(), true,
+ inputData.getData1ResultResource() };
+ Object[] test1LeftToRight = new Object[] {inputData.getData1AncestorResource(),
+ inputData.getData1RightResource(), inputData.getData1LeftResource(), false,
+ inputData.getData1ResultResource() };
+
+ /**
+ * <pre>
+ * The ancestor:
+ * - root
+ * - packageA
+ * - packageB
+ * - packageC
+ * - packageD
+ * - packageE
+ *
+ * The left model:
+ * - root
+ *
+ * The right model:
+ * - root
+ * - packageA
+ * - packageB
+ * - packageC
+ * - packageD
+ * - packageE
+ *
+ * The correct result on the left side after a merge of the move of packageB and packageD from right to left:
+ * - root
+ * - packageB
+ * - packageD
+ * </pre>
+ */
+ Object[] test2RightToLeft = new Object[] {inputData.getData2AncestorResource(),
+ inputData.getData2LeftResource(), inputData.getData2RightResource(), true,
+ inputData.getData2ResultResource() };
+ Object[] test2LeftToRight = new Object[] {inputData.getData2AncestorResource(),
+ inputData.getData2RightResource(), inputData.getData2LeftResource(), false,
+ inputData.getData2ResultResource() };
+
+ /**
+ * More complex models (supertypes, renaming)
+ */
+ Object[] test3RightToLeft = new Object[] {inputData.getData3AncestorResource(),
+ inputData.getData3LeftResource(), inputData.getData3RightResource(), true,
+ inputData.getData3ResultResource() };
+ Object[] test3LeftToRight = new Object[] {inputData.getData3AncestorResource(),
+ inputData.getData3RightResource(), inputData.getData3LeftResource(), false,
+ inputData.getData3ResultResource() };
+
+ /**
+ * <pre>
+ * The ancestor:
+ * - root
+ * - packageA
+ * - packageB
+ * - packageC
+ *
+ * The left model:
+ * - root
+ *
+ * The right model:
+ * - root
+ * - packageC
+ * - packageB
+ *
+ * The correct result on the left side after a merge of the move of packageB and packageD from right to left:
+ * - root
+ * - packageC
+ * - packageB
+ * </pre>
+ *
+ * The test is actually commented due to a bug in comparison process.
+ */
+ Object[] test4RightToLeft = new Object[] {inputData.getData4AncestorResource(),
+ inputData.getData4LeftResource(), inputData.getData4RightResource(), true,
+ inputData.getData4ResultResource() };
+ Object[] test4LeftToRight = new Object[] {inputData.getData4AncestorResource(),
+ inputData.getData4RightResource(), inputData.getData4LeftResource(), false,
+ inputData.getData4ResultResource() };
+
+ /**
+ * <pre>
+ * The ancestor:
+ * - root
+ * - packageA
+ * - packageB
+ * - packageC
+ *
+ * The left model:
+ * - root
+ *
+ * The right model:
+ * - root
+ * - packageB
+ * - packageA
+ * - packageD
+ *
+ * The correct result on the left side after a merge of the move of packageB and packageD from right to left:
+ * - root
+ * - packageB
+ * - packageA
+ * </pre>
+ */
+ Object[] test5RightToLeft = new Object[] {inputData.getData5AncestorResource(),
+ inputData.getData5LeftResource(), inputData.getData5RightResource(), true,
+ inputData.getData5ResultResource() };
+ Object[] test5LeftToRight = new Object[] {inputData.getData5AncestorResource(),
+ inputData.getData5RightResource(), inputData.getData5LeftResource(), false,
+ inputData.getData5ResultResource() };
+
+ // test4 is not used for the moment since their is a bug in the comparison process with this models
+ return Arrays.asList(test1RightToLeft, test1LeftToRight, test2RightToLeft, test2LeftToRight,
+ test3RightToLeft, test3LeftToRight, test5RightToLeft, test5LeftToRight);
+ }
+
+ public Bug485266_MoveDeleteConflict_Test(final Resource origin, final Resource left,
+ final Resource right, final boolean rightToLeft, final Resource expected) {
+ super(origin, left, right, rightToLeft, expected, IMerger.RegistryImpl.createStandaloneInstance());
+ }
+
+ @Override
+ protected List<Diff> getDiffsToMerge() {
+ List<Diff> diffsToMerge = new ArrayList<Diff>();
+
+ final EList<Conflict> conflicts = comparison.getConflicts();
+ for (Conflict conflict : conflicts) {
+ final EList<Diff> differences = conflict.getDifferences();
+
+ final Collection<Diff> moveDiffs = Collections2.filter(differences, ofKind(MOVE));
+ assertEquals(1, moveDiffs.size());
+
+ final Diff move = moveDiffs.iterator().next();
+ diffsToMerge.add(move);
+ }
+ return diffsToMerge;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/Bug485266InputData.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/Bug485266InputData.java
new file mode 100644
index 000000000..4e7d2f47f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/Bug485266InputData.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.merge.data.bug485266;
+
+import java.io.IOException;
+
+import org.eclipse.emf.compare.tests.framework.AbstractInputData;
+import org.eclipse.emf.ecore.resource.Resource;
+
+public class Bug485266InputData extends AbstractInputData {
+
+ public Resource getData1AncestorResource() throws IOException {
+ return loadFromClassLoader("data1/ancestor.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData1LeftResource() throws IOException {
+ return loadFromClassLoader("data1/left.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData1RightResource() throws IOException {
+ return loadFromClassLoader("data1/right.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData1ResultResource() throws IOException {
+ return loadFromClassLoader("data1/result.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData2AncestorResource() throws IOException {
+ return loadFromClassLoader("data2/ancestor.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData2LeftResource() throws IOException {
+ return loadFromClassLoader("data2/left.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData2RightResource() throws IOException {
+ return loadFromClassLoader("data2/right.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData2ResultResource() throws IOException {
+ return loadFromClassLoader("data2/result.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData3AncestorResource() throws IOException {
+ return loadFromClassLoader("data3/ancestor.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData3LeftResource() throws IOException {
+ return loadFromClassLoader("data3/left.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData3RightResource() throws IOException {
+ return loadFromClassLoader("data3/right.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData3ResultResource() throws IOException {
+ return loadFromClassLoader("data3/result.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData4AncestorResource() throws IOException {
+ return loadFromClassLoader("data4/ancestor.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData4LeftResource() throws IOException {
+ return loadFromClassLoader("data4/left.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData4RightResource() throws IOException {
+ return loadFromClassLoader("data4/right.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData4ResultResource() throws IOException {
+ return loadFromClassLoader("data4/result.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData5AncestorResource() throws IOException {
+ return loadFromClassLoader("data5/ancestor.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData5LeftResource() throws IOException {
+ return loadFromClassLoader("data5/left.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData5RightResource() throws IOException {
+ return loadFromClassLoader("data5/right.ecore"); //$NON-NLS-1$
+ }
+
+ public Resource getData5ResultResource() throws IOException {
+ return loadFromClassLoader("data5/result.ecore"); //$NON-NLS-1$
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/ancestor.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/ancestor.ecore
new file mode 100644
index 000000000..817e40d13
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/ancestor.ecore
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eSubpackages xmi:id="_shouldNotBePresentAfterMerge" name="shouldNotBePresentAfterMerge">
+ <eSubpackages xmi:id="_elementMoved" name="elementMoved"/>
+ </eSubpackages>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/left.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/left.ecore
new file mode 100644
index 000000000..156a796d6
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/left.ecore
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/result.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/result.ecore
new file mode 100644
index 000000000..d4a6e96f6
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/result.ecore
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eSubpackages xmi:id="_elementMoved" name="elementMoved"/>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/right.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/right.ecore
new file mode 100644
index 000000000..a3d6268e3
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data1/right.ecore
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eSubpackages xmi:id="_shouldNotBePresentAfterMerge" name="shouldNotBePresentAfterMerge"/>
+ <eSubpackages xmi:id="_elementMoved" name="elementMoved"/>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/ancestor.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/ancestor.ecore
new file mode 100644
index 000000000..d2812a7f1
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/ancestor.ecore
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eSubpackages xmi:id="_shouldNotBePresentAfterMerge0" name="shouldNotBePresentAfterMerge0">
+ <eSubpackages xmi:id="_elementMoved1" name="elementMoved1">
+ <eSubpackages xmi:id="_shouldNotBePresentAfterMerge1" name="shouldNotBePresentAfterMerge1">
+ <eSubpackages xmi:id="_elementMoved2" name="elementMoved2">
+ <eSubpackages xmi:id="_shouldNotBePresentAfterMerge2" name="shouldNotBePresentAfterMerge2"/>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/left.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/left.ecore
new file mode 100644
index 000000000..46bb331ac
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/left.ecore
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/result.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/result.ecore
new file mode 100644
index 000000000..92d43c3fc
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/result.ecore
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eSubpackages xmi:id="_elementMoved1" name="elementMoved1"/>
+ <eSubpackages xmi:id="_elementMoved2" name="elementMoved2"/>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/right.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/right.ecore
new file mode 100644
index 000000000..0a0cf3c63
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data2/right.ecore
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eSubpackages xmi:id="_shouldNotBePresentAfterMerge0" name="shouldNotBePresentAfterMerge0"/>
+ <eSubpackages xmi:id="_elementMoved1" name="elementMoved1">
+ <eSubpackages xmi:id="_shouldNotBePresentAfterMerge1" name="shouldNotBePresentAfterMerge1"/>
+ </eSubpackages>
+ <eSubpackages xmi:id="_elementMoved2" name="elementMoved2">
+ <eSubpackages xmi:id="_shouldNotBePresentAfterMerge2" name="shouldNotBePresentAfterMerge2"/>
+ </eSubpackages>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/ancestor.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/ancestor.ecore
new file mode 100644
index 000000000..0e4a0af3c
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/ancestor.ecore
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eSubpackages xmi:id="_shouldNotBePresentAfterMerge" name="shouldNotBePresentAfterMerge">
+ <eClassifiers xmi:id="_elementMoved" xsi:type="ecore:EClass" name="elementMoved" eSuperTypes="#_superType1"/>
+ </eSubpackages>
+ </eSubpackages>
+ <eSubpackages xmi:id="_packageB" name="packageB">
+ <eClassifiers xmi:id="_superType1" xsi:type="ecore:EClass" name="superType1"/>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/left.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/left.ecore
new file mode 100644
index 000000000..ce5c046dc
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/left.ecore
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA"/>
+ <eSubpackages xmi:id="_packageB" name="packageB">
+ <eClassifiers xsi:type="ecore:EClass" xmi:id="_superType1" name="superType1"/>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/result.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/result.ecore
new file mode 100644
index 000000000..ed1fde1d8
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/result.ecore
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eClassifiers xsi:type="ecore:EClass" xmi:id="_elementMoved" name="elementMovedRenamed"/>
+ </eSubpackages>
+ <eSubpackages xmi:id="_packageB" name="packageB">
+ <eClassifiers xsi:type="ecore:EClass" xmi:id="_superType1" name="superType1"/>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/right.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/right.ecore
new file mode 100644
index 000000000..832f00ca3
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data3/right.ecore
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eClassifiers xsi:type="ecore:EClass" xmi:id="_elementMoved" name="elementMovedRenamed" eSuperTypes="#_superType1 #_superType2"/>
+ <eSubpackages xmi:id="_shouldNotBePresentAfterMerge" name="shouldNotBePresentAfterMerge"/>
+ </eSubpackages>
+ <eSubpackages xmi:id="_packageB" name="packageB">
+ <eClassifiers xsi:type="ecore:EClass" xmi:id="_superType1" name="superType1Renamed"/>
+ <eClassifiers xsi:type="ecore:EClass" xmi:id="_superType2" name="superType2"/>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/ancestor.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/ancestor.ecore
new file mode 100644
index 000000000..f9dc4fdf5
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/ancestor.ecore
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eSubpackages xmi:id="_shouldNotBePresentAfterMerge" name="shouldNotBePresentAfterMerge">
+ <eSubpackages xmi:id="_containerPackage" name="containerPackage">
+ <eSubpackages xmi:id="_childPackage" name="childPackage"/>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/left.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/left.ecore
new file mode 100644
index 000000000..46bb331ac
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/left.ecore
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/result.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/result.ecore
new file mode 100644
index 000000000..5544a7d77
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/result.ecore
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eSubpackages xmi:id="_childPackage" name="childPackage">
+ <eSubpackages xmi:id="_containerPackage" name="containerPackage"/>
+ </eSubpackages>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/right.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/right.ecore
new file mode 100644
index 000000000..5544a7d77
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data4/right.ecore
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eSubpackages xmi:id="_childPackage" name="childPackage">
+ <eSubpackages xmi:id="_containerPackage" name="containerPackage"/>
+ </eSubpackages>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/ancestor.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/ancestor.ecore
new file mode 100644
index 000000000..8eb6ec845
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/ancestor.ecore
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eSubpackages xmi:id="_internalPackage" name="internalPackage"/>
+ <eSubpackages xmi:id="_containerPackage" name="containerPackage"/>
+ <eSubpackages xmi:id="_shouldNotBePresentAfterMerge" name="shouldNotBePresentAfterMerge"/>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/left.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/left.ecore
new file mode 100644
index 000000000..46bb331ac
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/left.ecore
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/result.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/result.ecore
new file mode 100644
index 000000000..e32961b7f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/result.ecore
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eSubpackages xmi:id="_containerPackage" name="containerPackage">
+ <eSubpackages xmi:id="_internalPackage" name="internalPackage"/>
+ </eSubpackages>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/right.ecore b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/right.ecore
new file mode 100644
index 000000000..6d169d7a5
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/data/bug485266/data5/right.ecore
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmi:id="_root" name="root" nsURI="http://www.eclipse.org/emf/compare/conflicts/move/delete"
+ nsPrefix="r">
+ <eSubpackages xmi:id="_packageA" name="packageA">
+ <eSubpackages xmi:id="_containerPackage" name="containerPackage">
+ <eSubpackages xmi:id="_internalPackage" name="internalPackage"/>
+ </eSubpackages>
+ <eSubpackages xmi:id="_shouldNotBePresentAfterMerge" name="shouldNotBePresentAfterMerge"/>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/suite/AllTests.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/suite/AllTests.java
index 0e7647aea..11b6cad45 100644
--- a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/suite/AllTests.java
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/suite/AllTests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2015 Obeo and others.
+ * Copyright (c) 2012, 2016 Obeo 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
@@ -42,6 +42,7 @@ import org.eclipse.emf.compare.tests.match.ProximityIndexTest;
import org.eclipse.emf.compare.tests.match.ProxyMatchingTest;
import org.eclipse.emf.compare.tests.match.RootIDMatchingTest;
import org.eclipse.emf.compare.tests.match.XMIMatchingTest;
+import org.eclipse.emf.compare.tests.merge.Bug485266_MoveDeleteConflict_Test;
import org.eclipse.emf.compare.tests.merge.ConflictMergeTest;
import org.eclipse.emf.compare.tests.merge.ExtensionMergeTest;
import org.eclipse.emf.compare.tests.merge.FeatureMaps2wayMergeTest;
@@ -91,7 +92,8 @@ import org.junit.runners.Suite.SuiteClasses;
FeatureFilterTest.class, ThreeWayBatchMergingTest.class,
MultiLineAttributeConflictDetectionTest.class, ThreeWayTextDiffTest.class,
MultiLineAttributeMergeTest.class, MonitorCancelTest.class, IdentifierEObjectMatcherTest.class,
- MatchUtilFeatureContainsTest.class, RefineMergeTest.class, Bug484557ConflictTest.class })
+ MatchUtilFeatureContainsTest.class, RefineMergeTest.class, Bug484557ConflictTest.class,
+ Bug485266_MoveDeleteConflict_Test.class })
public class AllTests {
/**
* Standalone launcher for all of compare's tests.

Back to the top