Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Roldan Betancort2013-08-19 09:03:22 +0000
committerMikaƫl Barbero2013-08-19 12:27:15 +0000
commit62a9ecf0acf7f5a871fb134c5f44f0183658d705 (patch)
treefc23d03b26d3d84feda7908ffe3d9cb3a4f6fe65
parent257e53d992b29aaede7984ff60bcc4d3a82f2857 (diff)
downloadorg.eclipse.emf.compare-62a9ecf0acf7f5a871fb134c5f44f0183658d705.tar.gz
org.eclipse.emf.compare-62a9ecf0acf7f5a871fb134c5f44f0183658d705.tar.xz
org.eclipse.emf.compare-62a9ecf0acf7f5a871fb134c5f44f0183658d705.zip
[412315] Increase visibility of EditionDistance.getThresholdRatio(int)
to protected Bug: 412315 Change-Id: I99f87b747fa56839d6cb6d6ed279e3038e15472c (cherry picked from commit a7b3710ac2b23224fd5119dd7feae6d4aa6996ca) Conflicts: plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/match/eobject/EditionDistance.java Signed-off-by: Victor Roldan Betancort <vroldan@opencanarias.com>
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/fullcomparison/ExtLibraryTest.java60
1 files changed, 33 insertions, 27 deletions
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/fullcomparison/ExtLibraryTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/fullcomparison/ExtLibraryTest.java
index 78f04cb7e..881f3a052 100644
--- a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/fullcomparison/ExtLibraryTest.java
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/fullcomparison/ExtLibraryTest.java
@@ -32,10 +32,10 @@ import org.eclipse.emf.compare.ConflictKind;
import org.eclipse.emf.compare.Diff;
import org.eclipse.emf.compare.DifferenceSource;
import org.eclipse.emf.compare.EMFCompare;
+import org.eclipse.emf.compare.scope.DefaultComparisonScope;
import org.eclipse.emf.compare.scope.IComparisonScope;
import org.eclipse.emf.compare.tests.fullcomparison.data.identifier.IdentifierMatchInputData;
import org.eclipse.emf.ecore.resource.Resource;
-import org.junit.Ignore;
import org.junit.Test;
/**
@@ -47,13 +47,12 @@ public class ExtLibraryTest {
private IdentifierMatchInputData inputData = new IdentifierMatchInputData();
@Test
- @Ignore
public void testConflicts() throws IOException {
final Resource left = inputData.getExtlibraryLeft();
final Resource origin = inputData.getExtlibraryOrigin();
final Resource right = inputData.getExtlibraryRight();
- final IComparisonScope scope = EMFCompare.createDefaultScope(left, right, origin);
+ final IComparisonScope scope = new DefaultComparisonScope(left, right, origin);
final Comparison comparison = EMFCompare.builder().build().compare(scope);
final List<Diff> differences = comparison.getDifferences();
@@ -118,41 +117,48 @@ public class ExtLibraryTest {
final Predicate<? super Diff> rightSetPeriodicalSupertype = and(fromSide(DifferenceSource.RIGHT),
addedToReference("extlibrary.Magazine", "eSuperTypes", "extlibrary.Periodical"));
- final Predicate<? super Diff> rightRemovedTitle = and(fromSide(DifferenceSource.RIGHT),
- removed("extlibrary.Periodical.title"));
- final Predicate<? super Diff> rightUnsetTitleType = and(fromSide(DifferenceSource.RIGHT),
- changedReference("extlibrary.Periodical.title", "eType", "ecore.EString", null));
+ final Predicate<? super Diff> rightSetTitledItemSupertype = and(fromSide(DifferenceSource.RIGHT),
+ addedToReference("extlibrary.Periodical", "eSuperTypes", "extlibrary.TitledItem"));
final Predicate<? super Diff> leftRemovedPeriodical = and(fromSide(DifferenceSource.LEFT),
removed("extlibrary.Periodical"));
- final Predicate<? super Diff> leftRemovedTitle = and(fromSide(DifferenceSource.LEFT),
- removed("extlibrary.Periodical.title"));
- final Predicate<? super Diff> leftUnsetTitleType = and(fromSide(DifferenceSource.LEFT),
- changedReference("extlibrary.Periodical.title", "eType", "ecore.EString", null));
final Diff rightSetPeriodicalSupertypeDiff = Iterators.find(differences.iterator(),
rightSetPeriodicalSupertype);
- final Diff rightRemovedTitleDiff = Iterators.find(differences.iterator(), rightRemovedTitle);
- final Diff rightUnsetTitleTypeDiff = Iterators.find(differences.iterator(), rightUnsetTitleType);
+ final Diff rightSetTitledItemSupertypeDiff = Iterators.find(differences.iterator(),
+ rightSetTitledItemSupertype);
final Diff leftRemovedPeriodicalDiff = Iterators.find(differences.iterator(), leftRemovedPeriodical);
- final Diff leftRemovedTitleDiff = Iterators.find(differences.iterator(), leftRemovedTitle);
- final Diff leftUnsetTitleTypeDiff = Iterators.find(differences.iterator(), leftUnsetTitleType);
final Conflict periodicalConflict = rightSetPeriodicalSupertypeDiff.getConflict();
assertNotNull(periodicalConflict);
- /*
- * The test fails. An easy fix is to set the number of diffs in conflicts here to "7" instead of "6".
- * This is wrong. The conflict detection should not set "all diffs under a containment delete" in
- * conflict with "the containment delete". See [381143] for details and fix this test accordingly.
- */
- assertSame(Integer.valueOf(6), Integer.valueOf(periodicalConflict.getDifferences().size()));
+ assertSame(Integer.valueOf(3), Integer.valueOf(periodicalConflict.getDifferences().size()));
+ assertTrue(periodicalConflict.getDifferences().contains(leftRemovedPeriodicalDiff));
assertTrue(periodicalConflict.getDifferences().contains(rightSetPeriodicalSupertypeDiff));
- assertTrue(periodicalConflict.getDifferences().contains(rightRemovedTitleDiff));
- assertTrue(periodicalConflict.getDifferences().contains(rightUnsetTitleTypeDiff));
- assertTrue(periodicalConflict.getDifferences().contains(leftRemovedPeriodicalDiff));
- assertTrue(periodicalConflict.getDifferences().contains(leftRemovedTitleDiff));
- assertTrue(periodicalConflict.getDifferences().contains(leftUnsetTitleTypeDiff));
+ assertTrue(periodicalConflict.getDifferences().contains(rightSetTitledItemSupertypeDiff));
assertSame(ConflictKind.REAL, periodicalConflict.getKind());
- assertSame(Integer.valueOf(4), comparison.getConflicts());
+ final Predicate<? super Diff> leftRemovedTitle = and(fromSide(DifferenceSource.LEFT),
+ removed("extlibrary.Periodical.title"));
+ final Predicate<? super Diff> leftUnsetTitleType = and(fromSide(DifferenceSource.LEFT),
+ changedReference("extlibrary.Periodical.title", "eType", "ecore.EString", null));
+ final Predicate<? super Diff> rightRemovedTitle = and(fromSide(DifferenceSource.RIGHT),
+ removed("extlibrary.Periodical.title"));
+ final Predicate<? super Diff> rightUnsetTitleType = and(fromSide(DifferenceSource.RIGHT),
+ changedReference("extlibrary.Periodical.title", "eType", "ecore.EString", null));
+
+ final Diff leftRemovedTitleDiff = Iterators.find(differences.iterator(), leftRemovedTitle);
+ final Diff leftUnsetTitleTypeDiff = Iterators.find(differences.iterator(), leftUnsetTitleType);
+ final Diff rightRemovedTitleDiff = Iterators.find(differences.iterator(), rightRemovedTitle);
+ final Diff rightUnsetTitleTypeDiff = Iterators.find(differences.iterator(), rightUnsetTitleType);
+
+ final Conflict titleConflict = leftRemovedTitleDiff.getConflict();
+ assertNotNull(titleConflict);
+ assertSame(Integer.valueOf(4), Integer.valueOf(titleConflict.getDifferences().size()));
+ assertTrue(titleConflict.getDifferences().contains(leftRemovedTitleDiff));
+ assertTrue(titleConflict.getDifferences().contains(leftUnsetTitleTypeDiff));
+ assertTrue(titleConflict.getDifferences().contains(rightRemovedTitleDiff));
+ assertTrue(titleConflict.getDifferences().contains(rightUnsetTitleTypeDiff));
+ assertSame(ConflictKind.PSEUDO, titleConflict.getKind());
+
+ assertSame(Integer.valueOf(5), Integer.valueOf(comparison.getConflicts().size()));
}
}

Back to the top