Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCedric Brun2011-07-29 10:09:09 +0000
committerlgoubet2011-08-02 13:06:49 +0000
commit25b94305b9a776f4d0cbeb17696b772ebd2f55fd (patch)
tree675500191a2f7f2cac14f38fa1e7490a758ec685
parent96d82f65a093cfa0c8c052868880d2a53693041b (diff)
downloadorg.eclipse.emf.compare-25b94305b9a776f4d0cbeb17696b772ebd2f55fd.tar.gz
org.eclipse.emf.compare-25b94305b9a776f4d0cbeb17696b772ebd2f55fd.tar.xz
org.eclipse.emf.compare-25b94305b9a776f4d0cbeb17696b772ebd2f55fd.zip
Extending the Merge tests based on history models to add cases where :
- the models are matched/merged using their resource set - the models are matched/merged only using their resource - the models are matched/merged detached from any resource Right now launching the AllMergeTests I get, 120 total tests, 5 errors and 16 failures
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AllMergeTests.java6
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/MergeTestBase.java29
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/SimpleEcoreHistoryMergeNoResource.java42
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/SimpleEcoreHistoryMergeWithResource.java43
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/SimpleEcoreHistoryMergeWithResourceSet.java59
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/UMLHistoryMergeNoResource.java42
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/UMLHistoryMergeWithResource.java43
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/UMLHistoryMergeWithResourceSet.java59
8 files changed, 315 insertions, 8 deletions
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AllMergeTests.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AllMergeTests.java
index 664f22b25..4d550dfcc 100644
--- a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AllMergeTests.java
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AllMergeTests.java
@@ -27,7 +27,13 @@ public class AllMergeTests {
suite.addTestSuite(AttributeOrderTest.class);
suite.addTestSuite(TestContainmentRemove.class);
suite.addTestSuite(SimpleEcoreHistoryMerge.class);
+ suite.addTestSuite(SimpleEcoreHistoryMergeNoResource.class);
+ suite.addTestSuite(SimpleEcoreHistoryMergeWithResource.class);
+ suite.addTestSuite(SimpleEcoreHistoryMergeWithResourceSet.class);
suite.addTestSuite(UMLHistoryMerge.class);
+ suite.addTestSuite(UMLHistoryMergeNoResource.class);
+ suite.addTestSuite(UMLHistoryMergeWithResource.class);
+ suite.addTestSuite(UMLHistoryMergeWithResourceSet.class);
// $JUnit-END$
return suite;
}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/MergeTestBase.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/MergeTestBase.java
index fd2df11f3..e68ebb7b7 100644
--- a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/MergeTestBase.java
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/MergeTestBase.java
@@ -10,7 +10,9 @@
*******************************************************************************/
package org.eclipse.emf.compare.tests.merge;
+import java.io.IOException;
import java.util.Collections;
+import java.util.List;
import java.util.Map;
import junit.framework.TestCase;
@@ -72,13 +74,32 @@ public abstract class MergeTestBase extends TestCase {
EObject testLeftModel = leftModel;
EObject testRightModel = rightModel;
+ List<DiffElement> differences = detectDifferences(testLeftModel, testRightModel);
+
+ mergeAndAssertResult(isLeftToRight, testLeftModel, testRightModel, differences);
+
+ // boolean mergeOK = EcoreUtil.equals(expectedModel, rightModel);
+ // if (false == mergeOK) {
+ //
+ // System.err.println("Expected :\n" + expected);
+ // System.err.println("Actual :\n" + actual);
+ // fail(" Merge (leftToRight=" + isLeftToRight + ")failed ");
+ // }
+ }
+
+ protected List<DiffElement> detectDifferences(EObject testLeftModel, EObject testRightModel)
+ throws InterruptedException {
Map<String, Object> options = Collections.emptyMap();
MatchModel match = MatchService.doMatch(testLeftModel, testRightModel, options);
DiffModel diff = DiffService.doDiff(match);
EList<DiffElement> differences = diff.getDifferences();
+ return differences;
+ }
+ protected void mergeAndAssertResult(boolean isLeftToRight, EObject testLeftModel, EObject testRightModel,
+ List<DiffElement> differences) throws IOException {
preMergeHook(isLeftToRight);
MergeService.merge(differences, isLeftToRight);
postMergeHook(isLeftToRight);
@@ -93,14 +114,6 @@ public abstract class MergeTestBase extends TestCase {
}
assertEquals(expected, actual);
-
- // boolean mergeOK = EcoreUtil.equals(expectedModel, rightModel);
- // if (false == mergeOK) {
- //
- // System.err.println("Expected :\n" + expected);
- // System.err.println("Actual :\n" + actual);
- // fail(" Merge (leftToRight=" + isLeftToRight + ")failed ");
- // }
}
/**
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/SimpleEcoreHistoryMergeNoResource.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/SimpleEcoreHistoryMergeNoResource.java
new file mode 100644
index 000000000..be3b2785a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/SimpleEcoreHistoryMergeNoResource.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2011 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 java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.compare.diff.metamodel.DiffElement;
+import org.eclipse.emf.compare.diff.metamodel.DiffModel;
+import org.eclipse.emf.compare.diff.service.DiffService;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.ecore.EObject;
+
+public class SimpleEcoreHistoryMergeNoResource extends SimpleEcoreHistoryMerge {
+
+ @Override
+ protected List<DiffElement> detectDifferences(EObject left, EObject right) throws InterruptedException {
+
+ Map<String, Object> options = Collections.emptyMap();
+
+ left.eResource().getContents().clear();
+ right.eResource().getContents().clear();
+
+ MatchModel match = MatchService.doMatch(left, right, options);
+ DiffModel diff = DiffService.doDiff(match);
+
+ EList<DiffElement> differences = diff.getDifferences();
+ return differences;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/SimpleEcoreHistoryMergeWithResource.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/SimpleEcoreHistoryMergeWithResource.java
new file mode 100644
index 000000000..ba757f56f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/SimpleEcoreHistoryMergeWithResource.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2011 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 java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.compare.diff.metamodel.DiffElement;
+import org.eclipse.emf.compare.diff.metamodel.DiffModel;
+import org.eclipse.emf.compare.diff.service.DiffService;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.ecore.EObject;
+
+public class SimpleEcoreHistoryMergeWithResource extends SimpleEcoreHistoryMerge {
+
+ @Override
+ protected List<DiffElement> detectDifferences(EObject left, EObject right) throws InterruptedException {
+ /*
+ * we'd like to test the case where we have an eResource, so let's make sure it's the case !
+ */
+ assertNotNull(left.eResource());
+ assertNotNull(right.eResource());
+ Map<String, Object> options = Collections.emptyMap();
+
+ MatchModel match = MatchService.doResourceMatch(left.eResource(), right.eResource(), options);
+ DiffModel diff = DiffService.doDiff(match);
+
+ EList<DiffElement> differences = diff.getDifferences();
+ return differences;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/SimpleEcoreHistoryMergeWithResourceSet.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/SimpleEcoreHistoryMergeWithResourceSet.java
new file mode 100644
index 000000000..91ed52f83
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/SimpleEcoreHistoryMergeWithResourceSet.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2011 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 java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.compare.diff.metamodel.DiffElement;
+import org.eclipse.emf.compare.diff.metamodel.DiffModel;
+import org.eclipse.emf.compare.diff.metamodel.DiffResourceSet;
+import org.eclipse.emf.compare.diff.service.DiffService;
+import org.eclipse.emf.compare.match.metamodel.MatchResourceSet;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+public class SimpleEcoreHistoryMergeWithResourceSet extends SimpleEcoreHistoryMerge {
+
+ @Override
+ protected List<DiffElement> detectDifferences(EObject left, EObject right) throws InterruptedException {
+ /*
+ * we'd like to test the case where we have an eResource, so let's make sure it's the case !
+ */
+ assertNotNull(left.eResource());
+ assertNotNull(right.eResource());
+
+ /*
+ * putting everything in a resourceSet
+ */
+
+ ResourceSet leftResourceSet = new ResourceSetImpl();
+ leftResourceSet.getResources().add(left.eResource());
+ ResourceSet rightResourceSet = new ResourceSetImpl();
+ rightResourceSet.getResources().add(right.eResource());
+
+ Map<String, Object> options = Collections.emptyMap();
+
+ MatchResourceSet match = MatchService.doResourceSetMatch(leftResourceSet, rightResourceSet, options);
+ DiffResourceSet diff = DiffService.doDiff(match);
+
+ List<DiffElement> differences = new ArrayList<DiffElement>();
+ for (DiffModel dModel : diff.getDiffModels()) {
+ differences.addAll(dModel.getDifferences());
+ }
+ return differences;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/UMLHistoryMergeNoResource.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/UMLHistoryMergeNoResource.java
new file mode 100644
index 000000000..ea10f8c17
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/UMLHistoryMergeNoResource.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2011 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 java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.compare.diff.metamodel.DiffElement;
+import org.eclipse.emf.compare.diff.metamodel.DiffModel;
+import org.eclipse.emf.compare.diff.service.DiffService;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.ecore.EObject;
+
+public class UMLHistoryMergeNoResource extends UMLHistoryMerge {
+
+ @Override
+ protected List<DiffElement> detectDifferences(EObject left, EObject right) throws InterruptedException {
+
+ Map<String, Object> options = Collections.emptyMap();
+
+ left.eResource().getContents().clear();
+ right.eResource().getContents().clear();
+
+ MatchModel match = MatchService.doMatch(left, right, options);
+ DiffModel diff = DiffService.doDiff(match);
+
+ EList<DiffElement> differences = diff.getDifferences();
+ return differences;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/UMLHistoryMergeWithResource.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/UMLHistoryMergeWithResource.java
new file mode 100644
index 000000000..8b7979a6d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/UMLHistoryMergeWithResource.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2011 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 java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.compare.diff.metamodel.DiffElement;
+import org.eclipse.emf.compare.diff.metamodel.DiffModel;
+import org.eclipse.emf.compare.diff.service.DiffService;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.ecore.EObject;
+
+public class UMLHistoryMergeWithResource extends UMLHistoryMerge {
+
+ @Override
+ protected List<DiffElement> detectDifferences(EObject left, EObject right) throws InterruptedException {
+ /*
+ * we'd like to test the case where we have an eResource, so let's make sure it's the case !
+ */
+ assertNotNull(left.eResource());
+ assertNotNull(right.eResource());
+ Map<String, Object> options = Collections.emptyMap();
+
+ MatchModel match = MatchService.doResourceMatch(left.eResource(), right.eResource(), options);
+ DiffModel diff = DiffService.doDiff(match);
+
+ EList<DiffElement> differences = diff.getDifferences();
+ return differences;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/UMLHistoryMergeWithResourceSet.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/UMLHistoryMergeWithResourceSet.java
new file mode 100644
index 000000000..3af510e90
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/UMLHistoryMergeWithResourceSet.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2011 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 java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.compare.diff.metamodel.DiffElement;
+import org.eclipse.emf.compare.diff.metamodel.DiffModel;
+import org.eclipse.emf.compare.diff.metamodel.DiffResourceSet;
+import org.eclipse.emf.compare.diff.service.DiffService;
+import org.eclipse.emf.compare.match.metamodel.MatchResourceSet;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+public class UMLHistoryMergeWithResourceSet extends UMLHistoryMerge {
+
+ @Override
+ protected List<DiffElement> detectDifferences(EObject left, EObject right) throws InterruptedException {
+ /*
+ * we'd like to test the case where we have an eResource, so let's make sure it's the case !
+ */
+ assertNotNull(left.eResource());
+ assertNotNull(right.eResource());
+
+ /*
+ * putting everything in a resourceSet
+ */
+
+ ResourceSet leftResourceSet = new ResourceSetImpl();
+ leftResourceSet.getResources().add(left.eResource());
+ ResourceSet rightResourceSet = new ResourceSetImpl();
+ rightResourceSet.getResources().add(right.eResource());
+
+ Map<String, Object> options = Collections.emptyMap();
+
+ MatchResourceSet match = MatchService.doResourceSetMatch(leftResourceSet, rightResourceSet, options);
+ DiffResourceSet diff = DiffService.doDiff(match);
+
+ List<DiffElement> differences = new ArrayList<DiffElement>();
+ for (DiffModel dModel : diff.getDiffModels()) {
+ differences.addAll(dModel.getDifferences());
+ }
+ return differences;
+ }
+}

Back to the top