Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Dirix2015-08-27 07:52:24 -0400
committerAxel RICHARD2015-09-02 04:43:22 -0400
commit88d73ad228347f4d7790fb74c3b75990eec5d400 (patch)
tree2abbfa1309efa942a815d4a78f20f424deae8e5c /plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests
parentc1fc714f2410092dd77d6c1c225750aeb5227932 (diff)
downloadorg.eclipse.emf.compare-88d73ad228347f4d7790fb74c3b75990eec5d400.tar.gz
org.eclipse.emf.compare-88d73ad228347f4d7790fb74c3b75990eec5d400.tar.xz
org.eclipse.emf.compare-88d73ad228347f4d7790fb74c3b75990eec5d400.zip
[475401] Modify RootIDMatchingStrategy to only return unique mappings
The RootIDMatchingStrategy determines matching between resources by intersecting the IDs of their root objects. The RootIDMatchingStrategy now checks if a possible mapping is unique and does therefore not intersect with another possible mapping. The previous behavior of returning the first possible mapping creates "random" results, affected by the order the given iterators return their resources. Since this strategy can not determine which is the "better" mapping of multiple options it should not return any of them. This way the remaining EMFCompareFramework is not confused by "half-true" mappings. Includes two-way testcases. Bug: 475401 Signed-off-by: Stefan Dirix <sdirix@eclipsesource.com> Change-Id: I2cb886d088d6ce27cbc06ec2958fc02ef9253d36
Diffstat (limited to 'plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests')
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/RootIDMatchingTest.java141
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/MatchInputData.java87
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/left.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/left2.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/right.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/right2.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/left.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/left2.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/right.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/right2.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/left.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/left2.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/right.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/right2.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/left.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/left2.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/right.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/right2.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/left.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/left2.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/right.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/right2.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/left.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/left2.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/right.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/right2.nodes8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/suite/AllTests.java3
27 files changed, 422 insertions, 1 deletions
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/RootIDMatchingTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/RootIDMatchingTest.java
new file mode 100644
index 000000000..d15476139
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/RootIDMatchingTest.java
@@ -0,0 +1,141 @@
+/*******************************************************************************
+ * Copyright (c) 2015 EclipseSource Muenchen GmbH 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:
+ * Stefan Dirix - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.match;
+
+import static org.junit.Assert.assertEquals;
+
+import com.google.common.collect.Lists;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.eclipse.emf.compare.MatchResource;
+import org.eclipse.emf.compare.match.resource.RootIDMatchingStrategy;
+import org.eclipse.emf.compare.tests.match.data.MatchInputData;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.junit.Test;
+
+public class RootIDMatchingTest {
+
+ private MatchInputData input = new MatchInputData();
+
+ /**
+ * Tests a scenario in which all root ids are different and no match should be returned.
+ *
+ * @throws IOException
+ * if {@link MatchInputData} fails to load the test models.
+ */
+ @Test
+ public void testRootIDTwoWayA1() throws IOException {
+ List<Resource> left = input.getRootIDTwoWayA1Left();
+ List<Resource> right = input.getRootIDTwoWayA1Right();
+ List<Resource> origin = Lists.newLinkedList();
+
+ RootIDMatchingStrategy strategy = new RootIDMatchingStrategy();
+ List<MatchResource> matchResources = strategy.matchResources(left, right, origin);
+
+ assertEquals(0, matchResources.size());
+ }
+
+ /**
+ * Tests a scenario in which one pair of root ids intersect and one match should be returned.
+ *
+ * @throws IOException
+ * if {@link MatchInputData} fails to load the test models.
+ */
+ @Test
+ public void testRootIDTwoWayA2() throws IOException {
+ List<Resource> left = input.getRootIDTwoWayA2Left();
+ List<Resource> right = input.getRootIDTwoWayA2Right();
+ List<Resource> origin = Lists.newLinkedList();
+
+ RootIDMatchingStrategy strategy = new RootIDMatchingStrategy();
+ List<MatchResource> matchResources = strategy.matchResources(left, right, origin);
+
+ assertEquals(1, matchResources.size());
+ }
+
+ /**
+ * Tests a scenario in which each file has at least one root id which intersects and therefore two matches
+ * should be returned.
+ *
+ * @throws IOException
+ * if {@link MatchInputData} fails to load the test models.
+ */
+ @Test
+ public void testRootIDTwoWayA3() throws IOException {
+ List<Resource> left = input.getRootIDTwoWayA3Left();
+ List<Resource> right = input.getRootIDTwoWayA3Right();
+ List<Resource> origin = Lists.newLinkedList();
+
+ RootIDMatchingStrategy strategy = new RootIDMatchingStrategy();
+ List<MatchResource> matchResources = strategy.matchResources(left, right, origin);
+
+ assertEquals(2, matchResources.size());
+ }
+
+ /**
+ * Tests a scenario in which one resource from the left intersects with all files from the right,
+ * therefore no match should be returned.
+ *
+ * @throws IOException
+ * if {@link MatchInputData} fails to load the test models.
+ */
+ @Test
+ public void testRootIDTwoWayA4() throws IOException {
+ List<Resource> left = input.getRootIDTwoWayA4Left();
+ List<Resource> right = input.getRootIDTwoWayA4Right();
+ List<Resource> origin = Lists.newLinkedList();
+
+ RootIDMatchingStrategy strategy = new RootIDMatchingStrategy();
+ List<MatchResource> matchResources = strategy.matchResources(left, right, origin);
+
+ assertEquals(0, matchResources.size());
+ }
+
+ /**
+ * Tests a scenario in which one resource from the left intersects with both files from the right, while
+ * the other left file intersects with only one. Still no match should be returned.
+ *
+ * @throws IOException
+ * if {@link MatchInputData} fails to load the test models.
+ */
+ @Test
+ public void testRootIDTwoWayA5() throws IOException {
+ List<Resource> left = input.getRootIDTwoWayA5Left();
+ List<Resource> right = input.getRootIDTwoWayA5Right();
+ List<Resource> origin = Lists.newLinkedList();
+
+ RootIDMatchingStrategy strategy = new RootIDMatchingStrategy();
+ List<MatchResource> matchResources = strategy.matchResources(left, right, origin);
+
+ assertEquals(0, matchResources.size());
+ }
+
+ /**
+ * Tests a scenario in which one resource from the right intersects with both files from the left, while
+ * the other right file intersects with only one. Still no match should be returned.
+ *
+ * @throws IOException
+ * if {@link MatchInputData} fails to load the test models.
+ */
+ @Test
+ public void testRootIDTwoWayA6() throws IOException {
+ List<Resource> left = input.getRootIDTwoWayA6Left();
+ List<Resource> right = input.getRootIDTwoWayA6Right();
+ List<Resource> origin = Lists.newLinkedList();
+
+ RootIDMatchingStrategy strategy = new RootIDMatchingStrategy();
+ List<MatchResource> matchResources = strategy.matchResources(left, right, origin);
+
+ assertEquals(0, matchResources.size());
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/MatchInputData.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/MatchInputData.java
index b8350ae33..8cf854278 100644
--- a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/MatchInputData.java
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/MatchInputData.java
@@ -10,7 +10,10 @@
*******************************************************************************/
package org.eclipse.emf.compare.tests.match.data;
+import com.google.common.collect.Lists;
+
import java.io.IOException;
+import java.util.List;
import org.eclipse.emf.compare.tests.framework.AbstractInputData;
import org.eclipse.emf.ecore.resource.Resource;
@@ -35,6 +38,90 @@ public class MatchInputData extends AbstractInputData {
return loadFromClassLoader("proxy/a2/right.nodes", new ResourceSetImpl());
}
+ public List<Resource> getRootIDTwoWayA1Left() throws IOException {
+ List<Resource> result = Lists.newLinkedList();
+ result.add(loadFromClassLoader("rootid/twoway/a1/left.nodes"));
+ result.add(loadFromClassLoader("rootid/twoway/a1/left2.nodes"));
+ return result;
+ }
+
+ public List<Resource> getRootIDTwoWayA1Right() throws IOException {
+ List<Resource> result = Lists.newLinkedList();
+ result.add(loadFromClassLoader("rootid/twoway/a1/right.nodes"));
+ result.add(loadFromClassLoader("rootid/twoway/a1/right2.nodes"));
+ return result;
+ }
+
+ public List<Resource> getRootIDTwoWayA2Left() throws IOException {
+ List<Resource> result = Lists.newLinkedList();
+ result.add(loadFromClassLoader("rootid/twoway/a2/left.nodes"));
+ result.add(loadFromClassLoader("rootid/twoway/a2/left2.nodes"));
+ return result;
+ }
+
+ public List<Resource> getRootIDTwoWayA2Right() throws IOException {
+ List<Resource> result = Lists.newLinkedList();
+ result.add(loadFromClassLoader("rootid/twoway/a2/right.nodes"));
+ result.add(loadFromClassLoader("rootid/twoway/a2/right2.nodes"));
+ return result;
+ }
+
+ public List<Resource> getRootIDTwoWayA3Left() throws IOException {
+ List<Resource> result = Lists.newLinkedList();
+ result.add(loadFromClassLoader("rootid/twoway/a3/left.nodes"));
+ result.add(loadFromClassLoader("rootid/twoway/a3/left2.nodes"));
+ return result;
+ }
+
+ public List<Resource> getRootIDTwoWayA3Right() throws IOException {
+ List<Resource> result = Lists.newLinkedList();
+ result.add(loadFromClassLoader("rootid/twoway/a3/right.nodes"));
+ result.add(loadFromClassLoader("rootid/twoway/a3/right2.nodes"));
+ return result;
+ }
+
+ public List<Resource> getRootIDTwoWayA4Left() throws IOException {
+ List<Resource> result = Lists.newLinkedList();
+ result.add(loadFromClassLoader("rootid/twoway/a4/left.nodes"));
+ result.add(loadFromClassLoader("rootid/twoway/a4/left2.nodes"));
+ return result;
+ }
+
+ public List<Resource> getRootIDTwoWayA4Right() throws IOException {
+ List<Resource> result = Lists.newLinkedList();
+ result.add(loadFromClassLoader("rootid/twoway/a4/right.nodes"));
+ result.add(loadFromClassLoader("rootid/twoway/a4/right2.nodes"));
+ return result;
+ }
+
+ public List<Resource> getRootIDTwoWayA5Left() throws IOException {
+ List<Resource> result = Lists.newLinkedList();
+ result.add(loadFromClassLoader("rootid/twoway/a5/left.nodes"));
+ result.add(loadFromClassLoader("rootid/twoway/a5/left2.nodes"));
+ return result;
+ }
+
+ public List<Resource> getRootIDTwoWayA5Right() throws IOException {
+ List<Resource> result = Lists.newLinkedList();
+ result.add(loadFromClassLoader("rootid/twoway/a5/right.nodes"));
+ result.add(loadFromClassLoader("rootid/twoway/a5/right2.nodes"));
+ return result;
+ }
+
+ public List<Resource> getRootIDTwoWayA6Left() throws IOException {
+ List<Resource> result = Lists.newLinkedList();
+ result.add(loadFromClassLoader("rootid/twoway/a6/left.nodes"));
+ result.add(loadFromClassLoader("rootid/twoway/a6/left2.nodes"));
+ return result;
+ }
+
+ public List<Resource> getRootIDTwoWayA6Right() throws IOException {
+ List<Resource> result = Lists.newLinkedList();
+ result.add(loadFromClassLoader("rootid/twoway/a6/right.nodes"));
+ result.add(loadFromClassLoader("rootid/twoway/a6/right2.nodes"));
+ return result;
+ }
+
public Resource getSetIDAttributeLeft() throws IOException {
return loadFromClassLoader("setidattribute/left.nodes");
}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/left.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/left.nodes
new file mode 100644
index 000000000..35c9bc1f2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/left.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_a" name="a"/>
+ <nodes:Node xmi:id="_b" name="b"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/left2.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/left2.nodes
new file mode 100644
index 000000000..f8d367253
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/left2.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_c" name="c"/>
+ <nodes:Node xmi:id="_d" name="d"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/right.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/right.nodes
new file mode 100644
index 000000000..1af0046cf
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/right.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_e" name="e"/>
+ <nodes:Node xmi:id="_f" name="f"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/right2.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/right2.nodes
new file mode 100644
index 000000000..26c53552a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a1/right2.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_g" name="g"/>
+ <nodes:Node xmi:id="_h" name="h"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/left.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/left.nodes
new file mode 100644
index 000000000..35c9bc1f2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/left.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_a" name="a"/>
+ <nodes:Node xmi:id="_b" name="b"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/left2.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/left2.nodes
new file mode 100644
index 000000000..f8d367253
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/left2.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_c" name="c"/>
+ <nodes:Node xmi:id="_d" name="d"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/right.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/right.nodes
new file mode 100644
index 000000000..204743178
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/right.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_a" name="a"/>
+ <nodes:Node xmi:id="_f" name="f"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/right2.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/right2.nodes
new file mode 100644
index 000000000..26c53552a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a2/right2.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_g" name="g"/>
+ <nodes:Node xmi:id="_h" name="h"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/left.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/left.nodes
new file mode 100644
index 000000000..35c9bc1f2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/left.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_a" name="a"/>
+ <nodes:Node xmi:id="_b" name="b"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/left2.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/left2.nodes
new file mode 100644
index 000000000..f8d367253
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/left2.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_c" name="c"/>
+ <nodes:Node xmi:id="_d" name="d"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/right.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/right.nodes
new file mode 100644
index 000000000..b70e22860
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/right.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_b" name="b"/>
+ <nodes:Node xmi:id="_a" name="a"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/right2.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/right2.nodes
new file mode 100644
index 000000000..01d0f90cb
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a3/right2.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_g" name="g"/>
+ <nodes:Node xmi:id="_d" name="d"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/left.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/left.nodes
new file mode 100644
index 000000000..35c9bc1f2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/left.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_a" name="a"/>
+ <nodes:Node xmi:id="_b" name="b"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/left2.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/left2.nodes
new file mode 100644
index 000000000..f8d367253
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/left2.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_c" name="c"/>
+ <nodes:Node xmi:id="_d" name="d"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/right.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/right.nodes
new file mode 100644
index 000000000..204743178
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/right.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_a" name="a"/>
+ <nodes:Node xmi:id="_f" name="f"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/right2.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/right2.nodes
new file mode 100644
index 000000000..6bb2d61b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a4/right2.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_g" name="g"/>
+ <nodes:Node xmi:id="_b" name="b"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/left.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/left.nodes
new file mode 100644
index 000000000..35c9bc1f2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/left.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_a" name="a"/>
+ <nodes:Node xmi:id="_b" name="b"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/left2.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/left2.nodes
new file mode 100644
index 000000000..f8d367253
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/left2.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_c" name="c"/>
+ <nodes:Node xmi:id="_d" name="d"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/right.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/right.nodes
new file mode 100644
index 000000000..8311a1c33
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/right.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_a" name="a"/>
+ <nodes:Node xmi:id="_c" name="c"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/right2.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/right2.nodes
new file mode 100644
index 000000000..14a643212
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a5/right2.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_b" name="b"/>
+ <nodes:Node xmi:id="_h" name="h"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/left.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/left.nodes
new file mode 100644
index 000000000..35c9bc1f2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/left.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_a" name="a"/>
+ <nodes:Node xmi:id="_b" name="b"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/left2.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/left2.nodes
new file mode 100644
index 000000000..f8d367253
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/left2.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_c" name="c"/>
+ <nodes:Node xmi:id="_d" name="d"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/right.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/right.nodes
new file mode 100644
index 000000000..f81585e7d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/right.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_a" name="a"/>
+ <nodes:Node xmi:id="_d" name="d"/>
+</xmi:XMI> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/right2.nodes b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/right2.nodes
new file mode 100644
index 000000000..14a643212
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/match/data/rootid/twoway/a6/right2.nodes
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes">
+ <nodes:Node xmi:id="_b" name="b"/>
+ <nodes:Node xmi:id="_h" name="h"/>
+</xmi:XMI> \ No newline at end of file
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 ed7d9e2c5..98df55f9e 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
@@ -39,6 +39,7 @@ import org.eclipse.emf.compare.tests.match.IdentifierEObjectMatcherTest;
import org.eclipse.emf.compare.tests.match.MatchEngineFactoryRegistryTest;
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.ConflictMergeTest;
import org.eclipse.emf.compare.tests.merge.ExtensionMergeTest;
@@ -83,7 +84,7 @@ import org.junit.runners.Suite.SuiteClasses;
ExtensionMergeTest.class, IndividualMergeOutOfScopeValuesTest.class, ProximityComparisonTest.class,
DynamicInstanceComparisonTest.class, URIDistanceTest.class, FragmentationTest.class,
AllEditTests.class, CommandStackTestSuite.class, MatchEngineFactoryRegistryTest.class,
- XMIMatchingTest.class, ProxyMatchingTest.class, ConflictMergeTest.class,
+ RootIDMatchingTest.class, XMIMatchingTest.class, ProxyMatchingTest.class, ConflictMergeTest.class,
PseudoConflictMergeTest.class, ProximityIndexTest.class, AllRCPTests.class,
FeatureMaps2wayMergeTest.class, FeatureMaps3wayMergeTest.class, FeatureMapsConflictsMergeTest.class,
FeatureMapsPseudoConflictsMergeTest.class, TwoWayBatchMergingTest.class, EqualityHelperTest.class,

Back to the top