Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/equi')
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/equi/EquiComputingTest.java2226
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/equi/data/EquiInputData.java676
2 files changed, 1451 insertions, 1451 deletions
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/equi/EquiComputingTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/equi/EquiComputingTest.java
index f4f539bac..993c0a2fe 100644
--- a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/equi/EquiComputingTest.java
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/equi/EquiComputingTest.java
@@ -1,1113 +1,1113 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2014 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.equi;
-
-import static org.eclipse.emf.compare.utils.EMFComparePredicates.addedToReference;
-import static org.eclipse.emf.compare.utils.EMFComparePredicates.changedReference;
-import static org.eclipse.emf.compare.utils.EMFComparePredicates.removedFromReference;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterators;
-
-import java.io.IOException;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.compare.Comparison;
-import org.eclipse.emf.compare.Diff;
-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.equi.data.EquiInputData;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.junit.Test;
-
-@SuppressWarnings({"nls", "boxing" })
-public class EquiComputingTest {
-
- enum TestKind {
- LEFT, RIGHT;
- }
-
- private EquiInputData input = new EquiInputData();
-
- @Test
- public void testA1UseCase() throws IOException {
- final Resource left = input.getA1Left();
- final Resource right = input.getA1Right();
- final Comparison comparison = compare(left, right);
- testA1(TestKind.LEFT, comparison);
- }
-
- private static void testA1(final TestKind kind, final Comparison comparison) {
- List<Diff> differences = comparison.getDifferences();
-
- // We should have no less and no more than 6 differences
- assertSame(Integer.valueOf(6), Integer.valueOf(differences.size()));
-
- Predicate<? super Diff> changeRefA2BDiffDescription = null;
- Predicate<? super Diff> changeRefB2ADiffDescription = null;
- Predicate<? super Diff> changeRefC2DDiffDescription = null;
- Predicate<? super Diff> changeRefD2CDiffDescription = null;
- Predicate<? super Diff> changeRefE2FDiffDescription = null;
- Predicate<? super Diff> changeRefF2EDiffDescription = null;
- if (kind.equals(TestKind.LEFT)) {
- changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", null,
- "Requirements.B");
- changeRefB2ADiffDescription = changedReference("Requirements.B", "source", null, "Requirements.A");
- changeRefC2DDiffDescription = addedToReference("Requirements.C", "destination", "Requirements.D");
- changeRefD2CDiffDescription = changedReference("Requirements.D", "source", null, "Requirements.C");
- changeRefE2FDiffDescription = addedToReference("Requirements.E", "destination", "Requirements.F");
- changeRefF2EDiffDescription = addedToReference("Requirements.F", "source", "Requirements.E");
- } else {
- changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", "Requirements.B",
- null);
- changeRefB2ADiffDescription = changedReference("Requirements.B", "source", "Requirements.A", null);
- changeRefC2DDiffDescription = removedFromReference("Requirements.C", "destination",
- "Requirements.D");
- changeRefD2CDiffDescription = changedReference("Requirements.D", "source", "Requirements.C", null);
- changeRefE2FDiffDescription = removedFromReference("Requirements.E", "destination",
- "Requirements.F");
- changeRefF2EDiffDescription = removedFromReference("Requirements.F", "source", "Requirements.E");
- }
-
- final Diff changeRefA2BDiff = Iterators.find(differences.iterator(), changeRefA2BDiffDescription);
- final Diff changeRefB2ADiff = Iterators.find(differences.iterator(), changeRefB2ADiffDescription);
- final Diff changeRefC2DDiff = Iterators.find(differences.iterator(), changeRefC2DDiffDescription);
- final Diff changeRefD2CDiff = Iterators.find(differences.iterator(), changeRefD2CDiffDescription);
- final Diff changeRefE2FDiff = Iterators.find(differences.iterator(), changeRefE2FDiffDescription);
- final Diff changeRefF2EDiff = Iterators.find(differences.iterator(), changeRefF2EDiffDescription);
-
- assertNotNull(changeRefA2BDiff);
- assertNotNull(changeRefB2ADiff);
- assertNotNull(changeRefC2DDiff);
- assertNotNull(changeRefD2CDiff);
- assertNotNull(changeRefE2FDiff);
- assertNotNull(changeRefF2EDiff);
-
- // CHECK EQUIVALENCE
- assertSame(Integer.valueOf(3), comparison.getEquivalences().size());
-
- assertNotNull(changeRefA2BDiff.getEquivalence());
- assertSame(Integer.valueOf(2), changeRefA2BDiff.getEquivalence().getDifferences().size());
- assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefA2BDiff));
- assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefB2ADiff));
-
- assertNotNull(changeRefC2DDiff.getEquivalence());
- assertSame(Integer.valueOf(2), changeRefC2DDiff.getEquivalence().getDifferences().size());
- assertTrue(changeRefC2DDiff.getEquivalence().getDifferences().contains(changeRefC2DDiff));
- assertTrue(changeRefC2DDiff.getEquivalence().getDifferences().contains(changeRefD2CDiff));
-
- assertNotNull(changeRefE2FDiff.getEquivalence());
- assertSame(Integer.valueOf(2), changeRefE2FDiff.getEquivalence().getDifferences().size());
- assertTrue(changeRefE2FDiff.getEquivalence().getDifferences().contains(changeRefE2FDiff));
- assertTrue(changeRefE2FDiff.getEquivalence().getDifferences().contains(changeRefF2EDiff));
- }
-
- @Test
- public void testA2UseCase() throws IOException {
- final Resource left = input.getA2Left();
- final Resource right = input.getA2Right();
-
- final Comparison comparison = compare(left, right);
-
- testA2(TestKind.LEFT, comparison);
-
- }
-
- private static void testA2(final TestKind kind, final Comparison comparison) {
- List<Diff> differences = comparison.getDifferences();
-
- // We should have no less and no more than 8 differences
- assertSame(Integer.valueOf(8), Integer.valueOf(differences.size()));
-
- Predicate<? super Diff> changeRefC2D1DiffDescription = null;
- Predicate<? super Diff> changeRefC2D2DiffDescription = null;
- Predicate<? super Diff> changeRefD12CDiffDescription = null;
- Predicate<? super Diff> changeRefD22CDiffDescription = null;
- Predicate<? super Diff> changeRefE2F1DiffDescription = null;
- Predicate<? super Diff> changeRefE2F2DiffDescription = null;
- Predicate<? super Diff> changeRefF12EDiffDescription = null;
- Predicate<? super Diff> changeRefF22EDiffDescription = null;
-
- if (kind.equals(TestKind.LEFT)) {
- changeRefC2D1DiffDescription = addedToReference("Requirements.C", "destination",
- "Requirements.D1");
- changeRefC2D2DiffDescription = addedToReference("Requirements.C", "destination",
- "Requirements.D2");
- changeRefD12CDiffDescription = changedReference("Requirements.D1", "source", null,
- "Requirements.C");
- changeRefD22CDiffDescription = changedReference("Requirements.D2", "source", null,
- "Requirements.C");
- changeRefE2F1DiffDescription = addedToReference("Requirements.E", "destination",
- "Requirements.F1");
- changeRefE2F2DiffDescription = addedToReference("Requirements.E", "destination",
- "Requirements.F2");
- changeRefF12EDiffDescription = addedToReference("Requirements.F1", "source", "Requirements.E");
- changeRefF22EDiffDescription = addedToReference("Requirements.F2", "source", "Requirements.E");
- } else {
- changeRefC2D1DiffDescription = removedFromReference("Requirements.C", "destination",
- "Requirements.D1");
- changeRefC2D2DiffDescription = removedFromReference("Requirements.C", "destination",
- "Requirements.D2");
- changeRefD12CDiffDescription = changedReference("Requirements.D1", "source", "Requirements.C",
- null);
- changeRefD22CDiffDescription = changedReference("Requirements.D2", "source", "Requirements.C",
- null);
- changeRefE2F1DiffDescription = removedFromReference("Requirements.E", "destination",
- "Requirements.F1");
- changeRefE2F2DiffDescription = removedFromReference("Requirements.E", "destination",
- "Requirements.F2");
- changeRefF12EDiffDescription = removedFromReference("Requirements.F1", "source", "Requirements.E");
- changeRefF22EDiffDescription = removedFromReference("Requirements.F2", "source", "Requirements.E");
- }
-
- final Diff changeRefC2D1Diff = Iterators.find(differences.iterator(), changeRefC2D1DiffDescription);
- final Diff changeRefC2D2Diff = Iterators.find(differences.iterator(), changeRefC2D2DiffDescription);
- final Diff changeRefD12CDiff = Iterators.find(differences.iterator(), changeRefD12CDiffDescription);
- final Diff changeRefD22CDiff = Iterators.find(differences.iterator(), changeRefD22CDiffDescription);
- final Diff changeRefE2F1Diff = Iterators.find(differences.iterator(), changeRefE2F1DiffDescription);
- final Diff changeRefE2F2Diff = Iterators.find(differences.iterator(), changeRefE2F2DiffDescription);
- final Diff changeRefF12EDiff = Iterators.find(differences.iterator(), changeRefF12EDiffDescription);
- final Diff changeRefF22EDiff = Iterators.find(differences.iterator(), changeRefF22EDiffDescription);
-
- assertNotNull(changeRefC2D1Diff);
- assertNotNull(changeRefC2D2Diff);
- assertNotNull(changeRefD12CDiff);
- assertNotNull(changeRefD22CDiff);
- assertNotNull(changeRefE2F1Diff);
- assertNotNull(changeRefE2F2Diff);
- assertNotNull(changeRefF12EDiff);
- assertNotNull(changeRefF22EDiff);
-
- // CHECK EQUIVALENCE
- assertSame(Integer.valueOf(4), comparison.getEquivalences().size());
-
- assertNotNull(changeRefC2D1Diff.getEquivalence());
- assertSame(Integer.valueOf(2), changeRefC2D1Diff.getEquivalence().getDifferences().size());
- assertTrue(changeRefC2D1Diff.getEquivalence().getDifferences().contains(changeRefC2D1Diff));
- assertTrue(changeRefC2D1Diff.getEquivalence().getDifferences().contains(changeRefD12CDiff));
-
- assertNotNull(changeRefC2D2Diff.getEquivalence());
- assertSame(Integer.valueOf(2), changeRefC2D2Diff.getEquivalence().getDifferences().size());
- assertTrue(changeRefC2D2Diff.getEquivalence().getDifferences().contains(changeRefC2D2Diff));
- assertTrue(changeRefC2D2Diff.getEquivalence().getDifferences().contains(changeRefD22CDiff));
-
- assertNotNull(changeRefE2F1Diff.getEquivalence());
- assertSame(Integer.valueOf(2), changeRefE2F1Diff.getEquivalence().getDifferences().size());
- assertTrue(changeRefE2F1Diff.getEquivalence().getDifferences().contains(changeRefE2F1Diff));
- assertTrue(changeRefE2F1Diff.getEquivalence().getDifferences().contains(changeRefF12EDiff));
-
- assertNotNull(changeRefE2F2Diff.getEquivalence());
- assertSame(Integer.valueOf(2), changeRefE2F2Diff.getEquivalence().getDifferences().size());
- assertTrue(changeRefE2F2Diff.getEquivalence().getDifferences().contains(changeRefE2F2Diff));
- assertTrue(changeRefE2F2Diff.getEquivalence().getDifferences().contains(changeRefF22EDiff));
- }
-
- @Test
- public void testA3UseCase() throws IOException {
- final Resource left = input.getA3Left();
- final Resource right = input.getA3Right();
-
- final Comparison comparison = compare(left, right);
-
- testA3(TestKind.LEFT, comparison);
-
- }
-
- private static void testA3(final TestKind kind, final Comparison comparison) {
- List<Diff> differences = comparison.getDifferences();
-
- // We should have no less and no more than 8 differences
- assertSame(Integer.valueOf(8), Integer.valueOf(differences.size()));
-
- Predicate<? super Diff> C1toD1DiffDescription = null;
- Predicate<? super Diff> C1toD2DiffDescription = null;
- Predicate<? super Diff> C2toD1DiffDescription = null;
- Predicate<? super Diff> C2toD2DiffDescription = null;
- Predicate<? super Diff> D1toC1DiffDescription = null;
- Predicate<? super Diff> D1toC2DiffDescription = null;
- Predicate<? super Diff> D2toC2DiffDescription = null;
- Predicate<? super Diff> D2toC1DiffDescription = null;
-
- if (kind.equals(TestKind.LEFT)) {
- C1toD1DiffDescription = addedToReference("Requirements.C1", "destination", "Requirements.D1");
- C1toD2DiffDescription = addedToReference("Requirements.C1", "destination", "Requirements.D2");
- C2toD1DiffDescription = addedToReference("Requirements.C2", "destination", "Requirements.D1");
- C2toD2DiffDescription = addedToReference("Requirements.C2", "source", "Requirements.D2");
- D1toC1DiffDescription = addedToReference("Requirements.D1", "source", "Requirements.C1");
- D1toC2DiffDescription = addedToReference("Requirements.D1", "source", "Requirements.C2");
- D2toC2DiffDescription = addedToReference("Requirements.D2", "destination", "Requirements.C2");
- D2toC1DiffDescription = addedToReference("Requirements.D2", "source", "Requirements.C1");
- } else {
- C1toD1DiffDescription = removedFromReference("Requirements.C1", "destination", "Requirements.D1");
- C1toD2DiffDescription = removedFromReference("Requirements.C1", "destination", "Requirements.D2");
- C2toD1DiffDescription = removedFromReference("Requirements.C2", "destination", "Requirements.D1");
- C2toD2DiffDescription = removedFromReference("Requirements.C2", "source", "Requirements.D2");
- D1toC1DiffDescription = removedFromReference("Requirements.D1", "source", "Requirements.C1");
- D1toC2DiffDescription = removedFromReference("Requirements.D1", "source", "Requirements.C2");
- D2toC2DiffDescription = removedFromReference("Requirements.D2", "destination", "Requirements.C2");
- D2toC1DiffDescription = removedFromReference("Requirements.D2", "source", "Requirements.C1");
- }
-
- final Diff C1toD1Diff = Iterators.find(differences.iterator(), C1toD1DiffDescription);
- final Diff C1toD2Diff = Iterators.find(differences.iterator(), C1toD2DiffDescription);
- final Diff C2toD1Diff = Iterators.find(differences.iterator(), C2toD1DiffDescription);
- final Diff C2toD2Diff = Iterators.find(differences.iterator(), C2toD2DiffDescription);
- final Diff D1toC1Diff = Iterators.find(differences.iterator(), D1toC1DiffDescription);
- final Diff D1toC2Diff = Iterators.find(differences.iterator(), D1toC2DiffDescription);
- final Diff D2toC2Diff = Iterators.find(differences.iterator(), D2toC2DiffDescription);
- final Diff D2toC1Diff = Iterators.find(differences.iterator(), D2toC1DiffDescription);
-
- assertNotNull(C1toD1Diff);
- assertNotNull(C1toD2Diff);
- assertNotNull(C2toD1Diff);
- assertNotNull(C2toD2Diff);
- assertNotNull(D1toC1Diff);
- assertNotNull(D1toC2Diff);
- assertNotNull(D2toC2Diff);
- assertNotNull(D2toC1Diff);
-
- // CHECK EQUIVALENCE
- assertSame(Integer.valueOf(4), comparison.getEquivalences().size());
-
- assertNotNull(C1toD1Diff.getEquivalence());
- assertSame(Integer.valueOf(2), C1toD1Diff.getEquivalence().getDifferences().size());
- assertTrue(C1toD1Diff.getEquivalence().getDifferences().contains(C1toD1Diff));
- assertTrue(C1toD1Diff.getEquivalence().getDifferences().contains(D1toC1Diff));
-
- assertNotNull(C1toD2Diff.getEquivalence());
- assertSame(Integer.valueOf(2), C1toD2Diff.getEquivalence().getDifferences().size());
- assertTrue(C1toD2Diff.getEquivalence().getDifferences().contains(C1toD2Diff));
- assertTrue(C1toD2Diff.getEquivalence().getDifferences().contains(D2toC1Diff));
-
- assertNotNull(C2toD1Diff.getEquivalence());
- assertSame(Integer.valueOf(2), C2toD1Diff.getEquivalence().getDifferences().size());
- assertTrue(C2toD1Diff.getEquivalence().getDifferences().contains(C2toD1Diff));
- assertTrue(C2toD1Diff.getEquivalence().getDifferences().contains(D1toC2Diff));
-
- assertNotNull(C2toD2Diff.getEquivalence());
- assertSame(Integer.valueOf(2), C2toD2Diff.getEquivalence().getDifferences().size());
- assertTrue(C2toD2Diff.getEquivalence().getDifferences().contains(C2toD2Diff));
- assertTrue(C2toD2Diff.getEquivalence().getDifferences().contains(D2toC2Diff));
- }
-
- @Test
- public void testA4UseCase() throws IOException {
- final Resource left = input.getA4Left();
- final Resource right = input.getA4Right();
-
- final Comparison comparison = compare(left, right);
-
- testA4(TestKind.LEFT, comparison);
- }
-
- private static void testA4(final TestKind kind, final Comparison comparison) {
- List<Diff> differences = comparison.getDifferences();
-
- // We should have no less and no more than 8 differences
- assertSame(Integer.valueOf(4), Integer.valueOf(differences.size()));
-
- Predicate<? super Diff> AtoBdestDiffDescription = null;
- Predicate<? super Diff> AtoBsourceDiffDescription = null;
- Predicate<? super Diff> BtoAdestDiffDescription = null;
- Predicate<? super Diff> BtoAsourceDiffDescription = null;
-
- if (kind.equals(TestKind.LEFT)) {
- AtoBdestDiffDescription = addedToReference("Requirements.A", "destination", "Requirements.B");
- AtoBsourceDiffDescription = addedToReference("Requirements.A", "source", "Requirements.B");
- BtoAdestDiffDescription = addedToReference("Requirements.B", "destination", "Requirements.A");
- BtoAsourceDiffDescription = addedToReference("Requirements.B", "source", "Requirements.A");
- } else {
- AtoBdestDiffDescription = removedFromReference("Requirements.A", "destination", "Requirements.B");
- AtoBsourceDiffDescription = removedFromReference("Requirements.A", "source", "Requirements.B");
- BtoAdestDiffDescription = removedFromReference("Requirements.B", "destination", "Requirements.A");
- BtoAsourceDiffDescription = removedFromReference("Requirements.B", "source", "Requirements.A");
- }
-
- final Diff AtoBdestDiff = Iterators.find(differences.iterator(), AtoBdestDiffDescription);
- final Diff AtoBsourceDiff = Iterators.find(differences.iterator(), AtoBsourceDiffDescription);
- final Diff BtoAdestDiff = Iterators.find(differences.iterator(), BtoAdestDiffDescription);
- final Diff BtoAsourceDiff = Iterators.find(differences.iterator(), BtoAsourceDiffDescription);
-
- assertNotNull(AtoBdestDiff);
- assertNotNull(AtoBsourceDiff);
- assertNotNull(BtoAdestDiff);
- assertNotNull(BtoAsourceDiff);
-
- // CHECK EQUIVALENCE
- assertSame(Integer.valueOf(2), comparison.getEquivalences().size());
-
- assertNotNull(AtoBdestDiff.getEquivalence());
- assertSame(Integer.valueOf(2), AtoBdestDiff.getEquivalence().getDifferences().size());
- assertTrue(AtoBdestDiff.getEquivalence().getDifferences().contains(AtoBdestDiff));
- assertTrue(AtoBdestDiff.getEquivalence().getDifferences().contains(BtoAsourceDiff));
-
- assertNotNull(AtoBsourceDiff.getEquivalence());
- assertSame(Integer.valueOf(2), AtoBsourceDiff.getEquivalence().getDifferences().size());
- assertTrue(AtoBsourceDiff.getEquivalence().getDifferences().contains(AtoBsourceDiff));
- assertTrue(AtoBsourceDiff.getEquivalence().getDifferences().contains(BtoAdestDiff));
- }
-
- @Test
- public void testA5UseCase() throws IOException {
- final Resource left = input.getA5Left();
- final Resource right = input.getA5Right();
-
- final Comparison comparison = compare(left, right);
-
- testA5(TestKind.LEFT, comparison);
- }
-
- private static void testA5(final TestKind kind, final Comparison comparison) {
- List<Diff> differences = comparison.getDifferences();
-
- // We should have no less and no more than 12 differences
- assertSame(Integer.valueOf(12), Integer.valueOf(differences.size()));
-
- Predicate<? super Diff> changeRefA2BDiffDescription = null;
- Predicate<? super Diff> changeRefB2ADiffDescription = null;
- Predicate<? super Diff> changeRefC2DDiffDescription = null;
- Predicate<? super Diff> changeRefD2CDiffDescription = null;
- Predicate<? super Diff> changeRefE2FDiffDescription = null;
- Predicate<? super Diff> changeRefF2EDiffDescription = null;
- Predicate<? super Diff> addADiffDescription = null;
- Predicate<? super Diff> addBDiffDescription = null;
- Predicate<? super Diff> addCDiffDescription = null;
- Predicate<? super Diff> addDDiffDescription = null;
- Predicate<? super Diff> addEDiffDescription = null;
- Predicate<? super Diff> addFDiffDescription = null;
-
- if (kind.equals(TestKind.LEFT)) {
- changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", null,
- "Requirements.B");
- changeRefB2ADiffDescription = changedReference("Requirements.B", "source", null, "Requirements.A");
- changeRefC2DDiffDescription = addedToReference("Requirements.C", "destination", "Requirements.D");
- changeRefD2CDiffDescription = changedReference("Requirements.D", "source", null, "Requirements.C");
- changeRefE2FDiffDescription = addedToReference("Requirements.E", "destination", "Requirements.F");
- changeRefF2EDiffDescription = addedToReference("Requirements.F", "source", "Requirements.E");
-
- addADiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.A");
- addBDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.B");
- addCDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.C");
- addDDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.D");
- addEDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.E");
- addFDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.F");
- } else {
- changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", "Requirements.B",
- null);
- changeRefB2ADiffDescription = changedReference("Requirements.B", "source", "Requirements.A", null);
- changeRefC2DDiffDescription = removedFromReference("Requirements.C", "destination",
- "Requirements.D");
- changeRefD2CDiffDescription = changedReference("Requirements.D", "source", "Requirements.C", null);
- changeRefE2FDiffDescription = removedFromReference("Requirements.E", "destination",
- "Requirements.F");
- changeRefF2EDiffDescription = removedFromReference("Requirements.F", "source", "Requirements.E");
-
- addADiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.A");
- addBDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.B");
- addCDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.C");
- addDDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.D");
- addEDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.E");
- addFDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.F");
- }
-
- final Diff changeRefA2BDiff = Iterators.find(differences.iterator(), changeRefA2BDiffDescription);
- final Diff changeRefB2ADiff = Iterators.find(differences.iterator(), changeRefB2ADiffDescription);
- final Diff changeRefC2DDiff = Iterators.find(differences.iterator(), changeRefC2DDiffDescription);
- final Diff changeRefD2CDiff = Iterators.find(differences.iterator(), changeRefD2CDiffDescription);
- final Diff changeRefE2FDiff = Iterators.find(differences.iterator(), changeRefE2FDiffDescription);
- final Diff changeRefF2EDiff = Iterators.find(differences.iterator(), changeRefF2EDiffDescription);
-
- final Diff addADiff = Iterators.find(differences.iterator(), addADiffDescription);
- final Diff addBDiff = Iterators.find(differences.iterator(), addBDiffDescription);
- final Diff addCDiff = Iterators.find(differences.iterator(), addCDiffDescription);
- final Diff addDDiff = Iterators.find(differences.iterator(), addDDiffDescription);
- final Diff addEDiff = Iterators.find(differences.iterator(), addEDiffDescription);
- final Diff addFDiff = Iterators.find(differences.iterator(), addFDiffDescription);
-
- assertNotNull(changeRefA2BDiff);
- assertNotNull(changeRefB2ADiff);
- assertNotNull(changeRefC2DDiff);
- assertNotNull(changeRefD2CDiff);
- assertNotNull(changeRefE2FDiff);
- assertNotNull(changeRefF2EDiff);
-
- assertNotNull(addADiff);
- assertNotNull(addBDiff);
- assertNotNull(addCDiff);
- assertNotNull(addDDiff);
- assertNotNull(addEDiff);
- assertNotNull(addFDiff);
-
- // CHECK EQUIVALENCE
- assertSame(Integer.valueOf(3), comparison.getEquivalences().size());
-
- assertNotNull(changeRefA2BDiff.getEquivalence());
- assertSame(Integer.valueOf(2), changeRefA2BDiff.getEquivalence().getDifferences().size());
- assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefA2BDiff));
- assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefB2ADiff));
-
- assertNotNull(changeRefC2DDiff.getEquivalence());
- assertSame(Integer.valueOf(2), changeRefC2DDiff.getEquivalence().getDifferences().size());
- assertTrue(changeRefC2DDiff.getEquivalence().getDifferences().contains(changeRefC2DDiff));
- assertTrue(changeRefC2DDiff.getEquivalence().getDifferences().contains(changeRefD2CDiff));
-
- assertNotNull(changeRefE2FDiff.getEquivalence());
- assertSame(Integer.valueOf(2), changeRefE2FDiff.getEquivalence().getDifferences().size());
- assertTrue(changeRefE2FDiff.getEquivalence().getDifferences().contains(changeRefE2FDiff));
- assertTrue(changeRefE2FDiff.getEquivalence().getDifferences().contains(changeRefF2EDiff));
- }
-
- @Test
- public void testB1UseCase() throws IOException {
- final Resource left = input.getA1Left();
- final Resource right = input.getA1Right();
-
- Comparison comparison = compare(right, left);
-
- testA1(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testB2UseCase() throws IOException {
- final Resource left = input.getA2Left();
- final Resource right = input.getA2Right();
-
- Comparison comparison = compare(right, left);
-
- testA2(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testB3UseCase() throws IOException {
- final Resource left = input.getA3Left();
- final Resource right = input.getA3Right();
-
- Comparison comparison = compare(right, left);
-
- testA3(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testB4UseCase() throws IOException {
- final Resource left = input.getA4Left();
- final Resource right = input.getA4Right();
-
- Comparison comparison = compare(right, left);
-
- testA4(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testB5UseCase() throws IOException {
- final Resource left = input.getA5Left();
- final Resource right = input.getA5Right();
-
- Comparison comparison = compare(right, left);
-
- testA5(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testC1UseCase() throws IOException {
- final Resource left = input.getC1Left();
- final Resource right = input.getC1Right();
-
- final Comparison comparison = compare(left, right);
-
- testC1(TestKind.LEFT, comparison);
- }
-
- private static void testC1(final TestKind kind, final Comparison comparison) {
- List<Diff> differences = comparison.getDifferences();
-
- // We should have no less and no more than 3 differences
- assertSame(Integer.valueOf(3), Integer.valueOf(differences.size()));
-
- Predicate<? super Diff> changeRefA2BDiffDescription = null;
- Predicate<? super Diff> changeRefB2ADiffDescription = null;
- Predicate<? super Diff> changeRefC2ADiffDescription = null;
- if (kind.equals(TestKind.LEFT)) {
- changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", "Requirements.B",
- "Requirements.C");
- changeRefB2ADiffDescription = changedReference("Requirements.B", "source", "Requirements.A", null);
- changeRefC2ADiffDescription = changedReference("Requirements.C", "source", null, "Requirements.A");
- } else {
- changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", "Requirements.C",
- "Requirements.B");
- changeRefB2ADiffDescription = changedReference("Requirements.B", "source", null, "Requirements.A");
- changeRefC2ADiffDescription = changedReference("Requirements.C", "source", "Requirements.A", null);
- }
-
- final Diff changeRefA2BDiff = Iterators.find(differences.iterator(), changeRefA2BDiffDescription);
- final Diff changeRefB2ADiff = Iterators.find(differences.iterator(), changeRefB2ADiffDescription);
- final Diff changeRefC2ADiff = Iterators.find(differences.iterator(), changeRefC2ADiffDescription);
-
- assertNotNull(changeRefA2BDiff);
- assertNotNull(changeRefB2ADiff);
- assertNotNull(changeRefC2ADiff);
-
- // CHECK EQUIVALENCE
- assertSame(Integer.valueOf(1), comparison.getEquivalences().size());
-
- assertNotNull(changeRefA2BDiff.getEquivalence());
- assertSame(Integer.valueOf(3), changeRefA2BDiff.getEquivalence().getDifferences().size());
- assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefA2BDiff));
- assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefB2ADiff));
- assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefC2ADiff));
-
- }
-
- @Test
- public void testC2UseCase() throws IOException {
- final Resource left = input.getC2Left();
- final Resource right = input.getC2Right();
-
- final Comparison comparison = compare(left, right);
-
- testC2(TestKind.LEFT, comparison);
- }
-
- private static void testC2(final TestKind kind, final Comparison comparison) {
- List<Diff> differences = comparison.getDifferences();
-
- // We should have no less and no more than 4 differences
- assertSame(Integer.valueOf(4), Integer.valueOf(differences.size()));
-
- Predicate<? super Diff> changeRefA2BDiffDescription = null;
- Predicate<? super Diff> changeRefB2ADiffDescription = null;
- Predicate<? super Diff> changeRefC2ADiffDescription = null;
- Predicate<? super Diff> addCDiffDescription = null;
- if (kind.equals(TestKind.LEFT)) {
- changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", "Requirements.B",
- "Requirements.C");
- changeRefB2ADiffDescription = changedReference("Requirements.B", "source", "Requirements.A", null);
- changeRefC2ADiffDescription = changedReference("Requirements.C", "source", null, "Requirements.A");
- addCDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.C");
- } else {
- changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", "Requirements.C",
- "Requirements.B");
- changeRefB2ADiffDescription = changedReference("Requirements.B", "source", null, "Requirements.A");
- changeRefC2ADiffDescription = changedReference("Requirements.C", "source", "Requirements.A", null);
- addCDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.C");
- }
-
- final Diff changeRefA2BDiff = Iterators.find(differences.iterator(), changeRefA2BDiffDescription);
- final Diff changeRefB2ADiff = Iterators.find(differences.iterator(), changeRefB2ADiffDescription);
- final Diff changeRefC2ADiff = Iterators.find(differences.iterator(), changeRefC2ADiffDescription);
- final Diff addCDiff = Iterators.find(differences.iterator(), addCDiffDescription);
-
- assertNotNull(changeRefA2BDiff);
- assertNotNull(changeRefB2ADiff);
- assertNotNull(changeRefC2ADiff);
- assertNotNull(addCDiff);
-
- // CHECK EQUIVALENCE
- assertSame(Integer.valueOf(1), comparison.getEquivalences().size());
-
- assertNotNull(changeRefA2BDiff.getEquivalence());
- assertSame(Integer.valueOf(3), changeRefA2BDiff.getEquivalence().getDifferences().size());
- assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefA2BDiff));
- assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefB2ADiff));
- assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefC2ADiff));
-
- }
-
- @Test
- public void testC3UseCase() throws IOException {
- final Resource left = input.getC3Left();
- final Resource right = input.getC3Right();
-
- final Comparison comparison = compare(left, right);
-
- testC3(TestKind.LEFT, comparison);
- }
-
- private static void testC3(final TestKind kind, final Comparison comparison) {
- List<Diff> differences = comparison.getDifferences();
-
- // We should have no less and no more than 4 differences
- assertSame(Integer.valueOf(4), Integer.valueOf(differences.size()));
-
- Predicate<? super Diff> changeRefA2CDiffDescription = null;
- Predicate<? super Diff> deleteBDiffDescription = null;
- Predicate<? super Diff> changeRefC2ADiffDescription = null;
- Predicate<? super Diff> changeRefB2ADiffDescription = null;
- if (kind.equals(TestKind.LEFT)) {
- changeRefA2CDiffDescription = changedReference("Requirements.A", "destination", "Requirements.B",
- "Requirements.C");
- changeRefC2ADiffDescription = changedReference("Requirements.C", "source", null, "Requirements.A");
- deleteBDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.B");
- changeRefB2ADiffDescription = changedReference("Requirements.B", "source", "Requirements.A", null);
- } else {
- changeRefA2CDiffDescription = changedReference("Requirements.A", "destination", "Requirements.C",
- "Requirements.B");
- changeRefC2ADiffDescription = changedReference("Requirements.C", "source", "Requirements.A", null);
- deleteBDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.B");
- changeRefB2ADiffDescription = changedReference("Requirements.B", "source", null, "Requirements.A");
- }
-
- final Diff changeRefA2CDiff = Iterators.find(differences.iterator(), changeRefA2CDiffDescription);
- final Diff changeRefC2ADiff = Iterators.find(differences.iterator(), changeRefC2ADiffDescription);
- final Diff deleteBDiff = Iterators.find(differences.iterator(), deleteBDiffDescription);
- final Diff changeRefB2ADiff = Iterators.find(differences.iterator(), changeRefB2ADiffDescription);
-
- assertNotNull(changeRefA2CDiff);
- assertNotNull(changeRefC2ADiff);
- assertNotNull(deleteBDiff);
- assertNotNull(changeRefB2ADiff);
-
- // CHECK EQUIVALENCE
- assertSame(Integer.valueOf(1), comparison.getEquivalences().size());
-
- assertNotNull(changeRefA2CDiff.getEquivalence());
- assertSame(Integer.valueOf(3), changeRefA2CDiff.getEquivalence().getDifferences().size());
- assertTrue(changeRefA2CDiff.getEquivalence().getDifferences().contains(changeRefA2CDiff));
- assertTrue(changeRefA2CDiff.getEquivalence().getDifferences().contains(changeRefC2ADiff));
- assertTrue(changeRefA2CDiff.getEquivalence().getDifferences().contains(changeRefB2ADiff));
-
- }
-
- @Test
- public void testC4UseCase() throws IOException {
- final Resource left = input.getC4Left();
- final Resource right = input.getC4Right();
-
- final Comparison comparison = compare(left, right);
-
- testC4(TestKind.LEFT, comparison);
- }
-
- private static void testC4(final TestKind kind, final Comparison comparison) {
- List<Diff> differences = comparison.getDifferences();
-
- // We should have no less and no more than 5 differences
- assertSame(Integer.valueOf(5), Integer.valueOf(differences.size()));
-
- Predicate<? super Diff> changeRefA2CDiffDescription = null;
- Predicate<? super Diff> deleteBDiffDescription = null;
- Predicate<? super Diff> changeRefC2ADiffDescription = null;
- Predicate<? super Diff> changeRefB2ADiffDescription = null;
- Predicate<? super Diff> addCDiffDescription = null;
- if (kind.equals(TestKind.LEFT)) {
- changeRefA2CDiffDescription = changedReference("Requirements.A", "destination", "Requirements.B",
- "Requirements.C");
- changeRefC2ADiffDescription = changedReference("Requirements.C", "source", null, "Requirements.A");
- deleteBDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.B");
- changeRefB2ADiffDescription = changedReference("Requirements.B", "source", "Requirements.A", null);
- addCDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.C");
- } else {
- changeRefA2CDiffDescription = changedReference("Requirements.A", "destination", "Requirements.C",
- "Requirements.B");
- changeRefC2ADiffDescription = changedReference("Requirements.C", "source", "Requirements.A", null);
- deleteBDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.B");
- changeRefB2ADiffDescription = changedReference("Requirements.B", "source", null, "Requirements.A");
- addCDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.C");
- }
-
- final Diff changeRefA2CDiff = Iterators.find(differences.iterator(), changeRefA2CDiffDescription);
- final Diff changeRefC2ADiff = Iterators.find(differences.iterator(), changeRefC2ADiffDescription);
- final Diff deleteBDiff = Iterators.find(differences.iterator(), deleteBDiffDescription);
- final Diff changeRefB2ADiff = Iterators.find(differences.iterator(), changeRefB2ADiffDescription);
- final Diff addCDiff = Iterators.find(differences.iterator(), addCDiffDescription);
-
- assertNotNull(changeRefA2CDiff);
- assertNotNull(changeRefC2ADiff);
- assertNotNull(deleteBDiff);
- assertNotNull(changeRefB2ADiff);
- assertNotNull(addCDiff);
-
- // CHECK EQUIVALENCE
- assertSame(Integer.valueOf(1), comparison.getEquivalences().size());
-
- assertNotNull(changeRefA2CDiff.getEquivalence());
- assertSame(Integer.valueOf(3), changeRefA2CDiff.getEquivalence().getDifferences().size());
- assertTrue(changeRefA2CDiff.getEquivalence().getDifferences().contains(changeRefA2CDiff));
- assertTrue(changeRefA2CDiff.getEquivalence().getDifferences().contains(changeRefC2ADiff));
- assertTrue(changeRefA2CDiff.getEquivalence().getDifferences().contains(changeRefB2ADiff));
-
- }
-
- @Test
- public void testD1UseCase() throws IOException {
- final Resource left = input.getD1Left();
- final Resource right = input.getD1Right();
-
- final Comparison comparison = compare(left, right);
-
- testD1(TestKind.LEFT, comparison);
- }
-
- private static void testD1(final TestKind kind, final Comparison comparison) {
- List<Diff> differences = comparison.getDifferences();
-
- // We should have no less and no more than 16 differences
- assertSame(Integer.valueOf(16), Integer.valueOf(differences.size()));
-
- Predicate<? super Diff> delBonADiffDescription = null;
- Predicate<? super Diff> delAonBDiffDescription = null;
- Predicate<? super Diff> addDonADiffDescription = null;
- Predicate<? super Diff> addEonADiffDescription = null;
- Predicate<? super Diff> delFonBDiffDescription = null;
- Predicate<? super Diff> addFonCDiffDescription = null;
- Predicate<? super Diff> addAonDDiffDescription = null;
- Predicate<? super Diff> delFonDDiffDescription = null;
- Predicate<? super Diff> addAonEDiffDescription = null;
- Predicate<? super Diff> addFonEDiffDescription = null;
- Predicate<? super Diff> delDonFDiffDescription = null;
- Predicate<? super Diff> delBonFDiffDescription = null;
- Predicate<? super Diff> addEonFDiffDescription = null;
- Predicate<? super Diff> addConFDiffDescription = null;
- Predicate<? super Diff> delBDiffDescription = null;
- Predicate<? super Diff> addEDiffDescription = null;
- if (kind.equals(TestKind.LEFT)) {
- delBonADiffDescription = removedFromReference("Requirements.A", "destination", "Requirements.B");
- delAonBDiffDescription = removedFromReference("Requirements.B", "source", "Requirements.A");
- addDonADiffDescription = addedToReference("Requirements.A", "destination", "Requirements.D");
- addEonADiffDescription = addedToReference("Requirements.A", "destination", "Requirements.E");
- delFonBDiffDescription = removedFromReference("Requirements.B", "source", "Requirements.F");
- addFonCDiffDescription = addedToReference("Requirements.C", "source", "Requirements.F");
- addAonDDiffDescription = addedToReference("Requirements.D", "source", "Requirements.A");
- delFonDDiffDescription = removedFromReference("Requirements.D", "source", "Requirements.F");
- addAonEDiffDescription = addedToReference("Requirements.E", "source", "Requirements.A");
- addFonEDiffDescription = addedToReference("Requirements.E", "source", "Requirements.F");
- delDonFDiffDescription = removedFromReference("Requirements.F", "destination", "Requirements.D");
- delBonFDiffDescription = removedFromReference("Requirements.F", "destination", "Requirements.B");
- addEonFDiffDescription = addedToReference("Requirements.F", "destination", "Requirements.E");
- addConFDiffDescription = addedToReference("Requirements.F", "destination", "Requirements.C");
- delBDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.B");
- addEDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.E");
- } else {
- delBonADiffDescription = addedToReference("Requirements.A", "destination", "Requirements.B");
- delAonBDiffDescription = addedToReference("Requirements.B", "source", "Requirements.A");
- addDonADiffDescription = removedFromReference("Requirements.A", "destination", "Requirements.D");
- addEonADiffDescription = removedFromReference("Requirements.A", "destination", "Requirements.E");
- delFonBDiffDescription = addedToReference("Requirements.B", "source", "Requirements.F");
- addFonCDiffDescription = removedFromReference("Requirements.C", "source", "Requirements.F");
- addAonDDiffDescription = removedFromReference("Requirements.D", "source", "Requirements.A");
- delFonDDiffDescription = addedToReference("Requirements.D", "source", "Requirements.F");
- addAonEDiffDescription = removedFromReference("Requirements.E", "source", "Requirements.A");
- addFonEDiffDescription = removedFromReference("Requirements.E", "source", "Requirements.F");
- delDonFDiffDescription = addedToReference("Requirements.F", "destination", "Requirements.D");
- delBonFDiffDescription = addedToReference("Requirements.F", "destination", "Requirements.B");
- addEonFDiffDescription = removedFromReference("Requirements.F", "destination", "Requirements.E");
- addConFDiffDescription = removedFromReference("Requirements.F", "destination", "Requirements.C");
- delBDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.B");
- addEDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.E");
- }
-
- final Diff delBonADiff = Iterators.find(differences.iterator(), delBonADiffDescription);
- final Diff delAonBDiff = Iterators.find(differences.iterator(), delAonBDiffDescription);
- final Diff addDonADiff = Iterators.find(differences.iterator(), addDonADiffDescription);
- final Diff addEonADiff = Iterators.find(differences.iterator(), addEonADiffDescription);
- final Diff delFonBDiff = Iterators.find(differences.iterator(), delFonBDiffDescription);
- final Diff addFonCDiff = Iterators.find(differences.iterator(), addFonCDiffDescription);
- final Diff addAonDDiff = Iterators.find(differences.iterator(), addAonDDiffDescription);
- final Diff delFonDDiff = Iterators.find(differences.iterator(), delFonDDiffDescription);
- final Diff addAonEDiff = Iterators.find(differences.iterator(), addAonEDiffDescription);
- final Diff addFonEDiff = Iterators.find(differences.iterator(), addFonEDiffDescription);
- final Diff delDonFDiff = Iterators.find(differences.iterator(), delDonFDiffDescription);
- final Diff delBonFDiff = Iterators.find(differences.iterator(), delBonFDiffDescription);
- final Diff addEonFDiff = Iterators.find(differences.iterator(), addEonFDiffDescription);
- final Diff addConFDiff = Iterators.find(differences.iterator(), addConFDiffDescription);
- final Diff delBDiff = Iterators.find(differences.iterator(), delBDiffDescription);
- final Diff addEDiff = Iterators.find(differences.iterator(), addEDiffDescription);
-
- assertNotNull(delBonADiff);
- assertNotNull(delAonBDiff);
- assertNotNull(addDonADiff);
- assertNotNull(addEonADiff);
- assertNotNull(delFonBDiff);
- assertNotNull(addFonCDiff);
- assertNotNull(addAonDDiff);
- assertNotNull(delFonDDiff);
- assertNotNull(addAonEDiff);
- assertNotNull(addFonEDiff);
- assertNotNull(delDonFDiff);
- assertNotNull(delBonFDiff);
- assertNotNull(addEonFDiff);
- assertNotNull(addConFDiff);
- assertNotNull(delBDiff);
- assertNotNull(addEDiff);
-
- // CHECK EQUIVALENCE
- assertSame(Integer.valueOf(7), comparison.getEquivalences().size());
-
- assertNotNull(delBonADiff.getEquivalence());
- assertSame(Integer.valueOf(2), delBonADiff.getEquivalence().getDifferences().size());
- assertTrue(delBonADiff.getEquivalence().getDifferences().contains(delBonADiff));
- assertTrue(delBonADiff.getEquivalence().getDifferences().contains(delAonBDiff));
-
- assertNotNull(addDonADiff.getEquivalence());
- assertSame(Integer.valueOf(2), addDonADiff.getEquivalence().getDifferences().size());
- assertTrue(addDonADiff.getEquivalence().getDifferences().contains(addDonADiff));
- assertTrue(addDonADiff.getEquivalence().getDifferences().contains(addAonDDiff));
-
- assertNotNull(addEonADiff.getEquivalence());
- assertSame(Integer.valueOf(2), addEonADiff.getEquivalence().getDifferences().size());
- assertTrue(addEonADiff.getEquivalence().getDifferences().contains(addEonADiff));
- assertTrue(addEonADiff.getEquivalence().getDifferences().contains(addAonEDiff));
-
- assertNotNull(delFonBDiff.getEquivalence());
- assertSame(Integer.valueOf(2), delFonBDiff.getEquivalence().getDifferences().size());
- assertTrue(delFonBDiff.getEquivalence().getDifferences().contains(delFonBDiff));
- assertTrue(delFonBDiff.getEquivalence().getDifferences().contains(delBonFDiff));
-
- assertNotNull(addFonCDiff.getEquivalence());
- assertSame(Integer.valueOf(2), addFonCDiff.getEquivalence().getDifferences().size());
- assertTrue(addFonCDiff.getEquivalence().getDifferences().contains(addFonCDiff));
- assertTrue(addFonCDiff.getEquivalence().getDifferences().contains(addConFDiff));
-
- assertNotNull(delFonDDiff.getEquivalence());
- assertSame(Integer.valueOf(2), delFonDDiff.getEquivalence().getDifferences().size());
- assertTrue(delFonDDiff.getEquivalence().getDifferences().contains(delFonDDiff));
- assertTrue(delFonDDiff.getEquivalence().getDifferences().contains(delDonFDiff));
-
- assertNotNull(addFonEDiff.getEquivalence());
- assertSame(Integer.valueOf(2), addFonEDiff.getEquivalence().getDifferences().size());
- assertTrue(addFonEDiff.getEquivalence().getDifferences().contains(addFonEDiff));
- assertTrue(addFonEDiff.getEquivalence().getDifferences().contains(addEonFDiff));
-
- }
-
- @Test
- public void testE1UseCase() throws IOException {
- final Resource left = input.getE1Left();
- final Resource right = input.getE1Right();
- final Resource ancestor = input.getE1Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testA1(TestKind.LEFT, comparison);
- }
-
- @Test
- public void testE2UseCase() throws IOException {
- final Resource left = input.getE2Left();
- final Resource right = input.getE2Right();
- final Resource ancestor = input.getE2Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testA2(TestKind.LEFT, comparison);
- }
-
- @Test
- public void testE3UseCase() throws IOException {
- final Resource left = input.getE3Left();
- final Resource right = input.getE3Right();
- final Resource ancestor = input.getE3Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testA3(TestKind.LEFT, comparison);
- }
-
- @Test
- public void testE4UseCase() throws IOException {
- final Resource left = input.getE4Left();
- final Resource right = input.getE4Right();
- final Resource ancestor = input.getE4Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testA4(TestKind.LEFT, comparison);
- }
-
- @Test
- public void testE5UseCase() throws IOException {
- final Resource left = input.getE5Left();
- final Resource right = input.getE5Right();
- final Resource ancestor = input.getE5Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testA5(TestKind.LEFT, comparison);
- }
-
- @Test
- public void testE6UseCase() throws IOException {
- final Resource left = input.getE6Left();
- final Resource right = input.getE6Right();
- final Resource ancestor = input.getE6Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testC1(TestKind.LEFT, comparison);
- }
-
- @Test
- public void testE7UseCase() throws IOException {
- final Resource left = input.getE7Left();
- final Resource right = input.getE7Right();
- final Resource ancestor = input.getE7Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testC2(TestKind.LEFT, comparison);
- }
-
- @Test
- public void testE8UseCase() throws IOException {
- final Resource left = input.getE8Left();
- final Resource right = input.getE8Right();
- final Resource ancestor = input.getE8Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testC3(TestKind.LEFT, comparison);
- }
-
- @Test
- public void testE9UseCase() throws IOException {
- final Resource left = input.getE9Left();
- final Resource right = input.getE9Right();
- final Resource ancestor = input.getE9Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testC4(TestKind.LEFT, comparison);
- }
-
- @Test
- public void testE10UseCase() throws IOException {
- final Resource left = input.getE10Left();
- final Resource right = input.getE10Right();
- final Resource ancestor = input.getE10Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testD1(TestKind.LEFT, comparison);
- }
-
- @Test
- public void testF1UseCase() throws IOException {
- final Resource left = input.getF1Left();
- final Resource right = input.getF1Right();
- final Resource ancestor = input.getF1Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testA1(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testF2UseCase() throws IOException {
- final Resource left = input.getF2Left();
- final Resource right = input.getF2Right();
- final Resource ancestor = input.getF2Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testA2(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testF3UseCase() throws IOException {
- final Resource left = input.getF3Left();
- final Resource right = input.getF3Right();
- final Resource ancestor = input.getF3Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testA3(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testF4UseCase() throws IOException {
- final Resource left = input.getF4Left();
- final Resource right = input.getF4Right();
- final Resource ancestor = input.getF4Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testA4(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testF5UseCase() throws IOException {
- final Resource left = input.getF5Left();
- final Resource right = input.getF5Right();
- final Resource ancestor = input.getF5Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testA5(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testF6UseCase() throws IOException {
- final Resource left = input.getF6Left();
- final Resource right = input.getF6Right();
- final Resource ancestor = input.getF6Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testC1(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testF7UseCase() throws IOException {
- final Resource left = input.getF7Left();
- final Resource right = input.getF7Right();
- final Resource ancestor = input.getF7Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testC2(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testF8UseCase() throws IOException {
- final Resource left = input.getF8Left();
- final Resource right = input.getF8Right();
- final Resource ancestor = input.getF8Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testC3(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testF9UseCase() throws IOException {
- final Resource left = input.getF9Left();
- final Resource right = input.getF9Right();
- final Resource ancestor = input.getF9Ancestor();
-
- Comparison comparison = compare(left, right, ancestor);
-
- testC4(TestKind.RIGHT, comparison);
- }
-
- @Test
- public void testF10UseCase() throws IOException {
- final Resource left = input.getF10Left();
- final Resource right = input.getF10Right();
- final Resource ancestor = input.getF10Ancestor();
-
- final Comparison comparison = compare(left, right, ancestor);
-
- testD1(TestKind.RIGHT, comparison);
- }
-
- private Comparison compare(Notifier left, Notifier right) {
- return compare(left, right, null);
- }
-
- private Comparison compare(Notifier left, Notifier right, Notifier ancestor) {
- final IComparisonScope scope = new DefaultComparisonScope(left, right, ancestor);
- return EMFCompare.builder().build().compare(scope);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 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.equi;
+
+import static org.eclipse.emf.compare.utils.EMFComparePredicates.addedToReference;
+import static org.eclipse.emf.compare.utils.EMFComparePredicates.changedReference;
+import static org.eclipse.emf.compare.utils.EMFComparePredicates.removedFromReference;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterators;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.compare.Comparison;
+import org.eclipse.emf.compare.Diff;
+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.equi.data.EquiInputData;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.junit.Test;
+
+@SuppressWarnings({"nls", "boxing" })
+public class EquiComputingTest {
+
+ enum TestKind {
+ LEFT, RIGHT;
+ }
+
+ private EquiInputData input = new EquiInputData();
+
+ @Test
+ public void testA1UseCase() throws IOException {
+ final Resource left = input.getA1Left();
+ final Resource right = input.getA1Right();
+ final Comparison comparison = compare(left, right);
+ testA1(TestKind.LEFT, comparison);
+ }
+
+ private static void testA1(final TestKind kind, final Comparison comparison) {
+ List<Diff> differences = comparison.getDifferences();
+
+ // We should have no less and no more than 6 differences
+ assertSame(Integer.valueOf(6), Integer.valueOf(differences.size()));
+
+ Predicate<? super Diff> changeRefA2BDiffDescription = null;
+ Predicate<? super Diff> changeRefB2ADiffDescription = null;
+ Predicate<? super Diff> changeRefC2DDiffDescription = null;
+ Predicate<? super Diff> changeRefD2CDiffDescription = null;
+ Predicate<? super Diff> changeRefE2FDiffDescription = null;
+ Predicate<? super Diff> changeRefF2EDiffDescription = null;
+ if (kind.equals(TestKind.LEFT)) {
+ changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", null,
+ "Requirements.B");
+ changeRefB2ADiffDescription = changedReference("Requirements.B", "source", null, "Requirements.A");
+ changeRefC2DDiffDescription = addedToReference("Requirements.C", "destination", "Requirements.D");
+ changeRefD2CDiffDescription = changedReference("Requirements.D", "source", null, "Requirements.C");
+ changeRefE2FDiffDescription = addedToReference("Requirements.E", "destination", "Requirements.F");
+ changeRefF2EDiffDescription = addedToReference("Requirements.F", "source", "Requirements.E");
+ } else {
+ changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", "Requirements.B",
+ null);
+ changeRefB2ADiffDescription = changedReference("Requirements.B", "source", "Requirements.A", null);
+ changeRefC2DDiffDescription = removedFromReference("Requirements.C", "destination",
+ "Requirements.D");
+ changeRefD2CDiffDescription = changedReference("Requirements.D", "source", "Requirements.C", null);
+ changeRefE2FDiffDescription = removedFromReference("Requirements.E", "destination",
+ "Requirements.F");
+ changeRefF2EDiffDescription = removedFromReference("Requirements.F", "source", "Requirements.E");
+ }
+
+ final Diff changeRefA2BDiff = Iterators.find(differences.iterator(), changeRefA2BDiffDescription);
+ final Diff changeRefB2ADiff = Iterators.find(differences.iterator(), changeRefB2ADiffDescription);
+ final Diff changeRefC2DDiff = Iterators.find(differences.iterator(), changeRefC2DDiffDescription);
+ final Diff changeRefD2CDiff = Iterators.find(differences.iterator(), changeRefD2CDiffDescription);
+ final Diff changeRefE2FDiff = Iterators.find(differences.iterator(), changeRefE2FDiffDescription);
+ final Diff changeRefF2EDiff = Iterators.find(differences.iterator(), changeRefF2EDiffDescription);
+
+ assertNotNull(changeRefA2BDiff);
+ assertNotNull(changeRefB2ADiff);
+ assertNotNull(changeRefC2DDiff);
+ assertNotNull(changeRefD2CDiff);
+ assertNotNull(changeRefE2FDiff);
+ assertNotNull(changeRefF2EDiff);
+
+ // CHECK EQUIVALENCE
+ assertSame(Integer.valueOf(3), comparison.getEquivalences().size());
+
+ assertNotNull(changeRefA2BDiff.getEquivalence());
+ assertSame(Integer.valueOf(2), changeRefA2BDiff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefA2BDiff));
+ assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefB2ADiff));
+
+ assertNotNull(changeRefC2DDiff.getEquivalence());
+ assertSame(Integer.valueOf(2), changeRefC2DDiff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefC2DDiff.getEquivalence().getDifferences().contains(changeRefC2DDiff));
+ assertTrue(changeRefC2DDiff.getEquivalence().getDifferences().contains(changeRefD2CDiff));
+
+ assertNotNull(changeRefE2FDiff.getEquivalence());
+ assertSame(Integer.valueOf(2), changeRefE2FDiff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefE2FDiff.getEquivalence().getDifferences().contains(changeRefE2FDiff));
+ assertTrue(changeRefE2FDiff.getEquivalence().getDifferences().contains(changeRefF2EDiff));
+ }
+
+ @Test
+ public void testA2UseCase() throws IOException {
+ final Resource left = input.getA2Left();
+ final Resource right = input.getA2Right();
+
+ final Comparison comparison = compare(left, right);
+
+ testA2(TestKind.LEFT, comparison);
+
+ }
+
+ private static void testA2(final TestKind kind, final Comparison comparison) {
+ List<Diff> differences = comparison.getDifferences();
+
+ // We should have no less and no more than 8 differences
+ assertSame(Integer.valueOf(8), Integer.valueOf(differences.size()));
+
+ Predicate<? super Diff> changeRefC2D1DiffDescription = null;
+ Predicate<? super Diff> changeRefC2D2DiffDescription = null;
+ Predicate<? super Diff> changeRefD12CDiffDescription = null;
+ Predicate<? super Diff> changeRefD22CDiffDescription = null;
+ Predicate<? super Diff> changeRefE2F1DiffDescription = null;
+ Predicate<? super Diff> changeRefE2F2DiffDescription = null;
+ Predicate<? super Diff> changeRefF12EDiffDescription = null;
+ Predicate<? super Diff> changeRefF22EDiffDescription = null;
+
+ if (kind.equals(TestKind.LEFT)) {
+ changeRefC2D1DiffDescription = addedToReference("Requirements.C", "destination",
+ "Requirements.D1");
+ changeRefC2D2DiffDescription = addedToReference("Requirements.C", "destination",
+ "Requirements.D2");
+ changeRefD12CDiffDescription = changedReference("Requirements.D1", "source", null,
+ "Requirements.C");
+ changeRefD22CDiffDescription = changedReference("Requirements.D2", "source", null,
+ "Requirements.C");
+ changeRefE2F1DiffDescription = addedToReference("Requirements.E", "destination",
+ "Requirements.F1");
+ changeRefE2F2DiffDescription = addedToReference("Requirements.E", "destination",
+ "Requirements.F2");
+ changeRefF12EDiffDescription = addedToReference("Requirements.F1", "source", "Requirements.E");
+ changeRefF22EDiffDescription = addedToReference("Requirements.F2", "source", "Requirements.E");
+ } else {
+ changeRefC2D1DiffDescription = removedFromReference("Requirements.C", "destination",
+ "Requirements.D1");
+ changeRefC2D2DiffDescription = removedFromReference("Requirements.C", "destination",
+ "Requirements.D2");
+ changeRefD12CDiffDescription = changedReference("Requirements.D1", "source", "Requirements.C",
+ null);
+ changeRefD22CDiffDescription = changedReference("Requirements.D2", "source", "Requirements.C",
+ null);
+ changeRefE2F1DiffDescription = removedFromReference("Requirements.E", "destination",
+ "Requirements.F1");
+ changeRefE2F2DiffDescription = removedFromReference("Requirements.E", "destination",
+ "Requirements.F2");
+ changeRefF12EDiffDescription = removedFromReference("Requirements.F1", "source", "Requirements.E");
+ changeRefF22EDiffDescription = removedFromReference("Requirements.F2", "source", "Requirements.E");
+ }
+
+ final Diff changeRefC2D1Diff = Iterators.find(differences.iterator(), changeRefC2D1DiffDescription);
+ final Diff changeRefC2D2Diff = Iterators.find(differences.iterator(), changeRefC2D2DiffDescription);
+ final Diff changeRefD12CDiff = Iterators.find(differences.iterator(), changeRefD12CDiffDescription);
+ final Diff changeRefD22CDiff = Iterators.find(differences.iterator(), changeRefD22CDiffDescription);
+ final Diff changeRefE2F1Diff = Iterators.find(differences.iterator(), changeRefE2F1DiffDescription);
+ final Diff changeRefE2F2Diff = Iterators.find(differences.iterator(), changeRefE2F2DiffDescription);
+ final Diff changeRefF12EDiff = Iterators.find(differences.iterator(), changeRefF12EDiffDescription);
+ final Diff changeRefF22EDiff = Iterators.find(differences.iterator(), changeRefF22EDiffDescription);
+
+ assertNotNull(changeRefC2D1Diff);
+ assertNotNull(changeRefC2D2Diff);
+ assertNotNull(changeRefD12CDiff);
+ assertNotNull(changeRefD22CDiff);
+ assertNotNull(changeRefE2F1Diff);
+ assertNotNull(changeRefE2F2Diff);
+ assertNotNull(changeRefF12EDiff);
+ assertNotNull(changeRefF22EDiff);
+
+ // CHECK EQUIVALENCE
+ assertSame(Integer.valueOf(4), comparison.getEquivalences().size());
+
+ assertNotNull(changeRefC2D1Diff.getEquivalence());
+ assertSame(Integer.valueOf(2), changeRefC2D1Diff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefC2D1Diff.getEquivalence().getDifferences().contains(changeRefC2D1Diff));
+ assertTrue(changeRefC2D1Diff.getEquivalence().getDifferences().contains(changeRefD12CDiff));
+
+ assertNotNull(changeRefC2D2Diff.getEquivalence());
+ assertSame(Integer.valueOf(2), changeRefC2D2Diff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefC2D2Diff.getEquivalence().getDifferences().contains(changeRefC2D2Diff));
+ assertTrue(changeRefC2D2Diff.getEquivalence().getDifferences().contains(changeRefD22CDiff));
+
+ assertNotNull(changeRefE2F1Diff.getEquivalence());
+ assertSame(Integer.valueOf(2), changeRefE2F1Diff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefE2F1Diff.getEquivalence().getDifferences().contains(changeRefE2F1Diff));
+ assertTrue(changeRefE2F1Diff.getEquivalence().getDifferences().contains(changeRefF12EDiff));
+
+ assertNotNull(changeRefE2F2Diff.getEquivalence());
+ assertSame(Integer.valueOf(2), changeRefE2F2Diff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefE2F2Diff.getEquivalence().getDifferences().contains(changeRefE2F2Diff));
+ assertTrue(changeRefE2F2Diff.getEquivalence().getDifferences().contains(changeRefF22EDiff));
+ }
+
+ @Test
+ public void testA3UseCase() throws IOException {
+ final Resource left = input.getA3Left();
+ final Resource right = input.getA3Right();
+
+ final Comparison comparison = compare(left, right);
+
+ testA3(TestKind.LEFT, comparison);
+
+ }
+
+ private static void testA3(final TestKind kind, final Comparison comparison) {
+ List<Diff> differences = comparison.getDifferences();
+
+ // We should have no less and no more than 8 differences
+ assertSame(Integer.valueOf(8), Integer.valueOf(differences.size()));
+
+ Predicate<? super Diff> C1toD1DiffDescription = null;
+ Predicate<? super Diff> C1toD2DiffDescription = null;
+ Predicate<? super Diff> C2toD1DiffDescription = null;
+ Predicate<? super Diff> C2toD2DiffDescription = null;
+ Predicate<? super Diff> D1toC1DiffDescription = null;
+ Predicate<? super Diff> D1toC2DiffDescription = null;
+ Predicate<? super Diff> D2toC2DiffDescription = null;
+ Predicate<? super Diff> D2toC1DiffDescription = null;
+
+ if (kind.equals(TestKind.LEFT)) {
+ C1toD1DiffDescription = addedToReference("Requirements.C1", "destination", "Requirements.D1");
+ C1toD2DiffDescription = addedToReference("Requirements.C1", "destination", "Requirements.D2");
+ C2toD1DiffDescription = addedToReference("Requirements.C2", "destination", "Requirements.D1");
+ C2toD2DiffDescription = addedToReference("Requirements.C2", "source", "Requirements.D2");
+ D1toC1DiffDescription = addedToReference("Requirements.D1", "source", "Requirements.C1");
+ D1toC2DiffDescription = addedToReference("Requirements.D1", "source", "Requirements.C2");
+ D2toC2DiffDescription = addedToReference("Requirements.D2", "destination", "Requirements.C2");
+ D2toC1DiffDescription = addedToReference("Requirements.D2", "source", "Requirements.C1");
+ } else {
+ C1toD1DiffDescription = removedFromReference("Requirements.C1", "destination", "Requirements.D1");
+ C1toD2DiffDescription = removedFromReference("Requirements.C1", "destination", "Requirements.D2");
+ C2toD1DiffDescription = removedFromReference("Requirements.C2", "destination", "Requirements.D1");
+ C2toD2DiffDescription = removedFromReference("Requirements.C2", "source", "Requirements.D2");
+ D1toC1DiffDescription = removedFromReference("Requirements.D1", "source", "Requirements.C1");
+ D1toC2DiffDescription = removedFromReference("Requirements.D1", "source", "Requirements.C2");
+ D2toC2DiffDescription = removedFromReference("Requirements.D2", "destination", "Requirements.C2");
+ D2toC1DiffDescription = removedFromReference("Requirements.D2", "source", "Requirements.C1");
+ }
+
+ final Diff C1toD1Diff = Iterators.find(differences.iterator(), C1toD1DiffDescription);
+ final Diff C1toD2Diff = Iterators.find(differences.iterator(), C1toD2DiffDescription);
+ final Diff C2toD1Diff = Iterators.find(differences.iterator(), C2toD1DiffDescription);
+ final Diff C2toD2Diff = Iterators.find(differences.iterator(), C2toD2DiffDescription);
+ final Diff D1toC1Diff = Iterators.find(differences.iterator(), D1toC1DiffDescription);
+ final Diff D1toC2Diff = Iterators.find(differences.iterator(), D1toC2DiffDescription);
+ final Diff D2toC2Diff = Iterators.find(differences.iterator(), D2toC2DiffDescription);
+ final Diff D2toC1Diff = Iterators.find(differences.iterator(), D2toC1DiffDescription);
+
+ assertNotNull(C1toD1Diff);
+ assertNotNull(C1toD2Diff);
+ assertNotNull(C2toD1Diff);
+ assertNotNull(C2toD2Diff);
+ assertNotNull(D1toC1Diff);
+ assertNotNull(D1toC2Diff);
+ assertNotNull(D2toC2Diff);
+ assertNotNull(D2toC1Diff);
+
+ // CHECK EQUIVALENCE
+ assertSame(Integer.valueOf(4), comparison.getEquivalences().size());
+
+ assertNotNull(C1toD1Diff.getEquivalence());
+ assertSame(Integer.valueOf(2), C1toD1Diff.getEquivalence().getDifferences().size());
+ assertTrue(C1toD1Diff.getEquivalence().getDifferences().contains(C1toD1Diff));
+ assertTrue(C1toD1Diff.getEquivalence().getDifferences().contains(D1toC1Diff));
+
+ assertNotNull(C1toD2Diff.getEquivalence());
+ assertSame(Integer.valueOf(2), C1toD2Diff.getEquivalence().getDifferences().size());
+ assertTrue(C1toD2Diff.getEquivalence().getDifferences().contains(C1toD2Diff));
+ assertTrue(C1toD2Diff.getEquivalence().getDifferences().contains(D2toC1Diff));
+
+ assertNotNull(C2toD1Diff.getEquivalence());
+ assertSame(Integer.valueOf(2), C2toD1Diff.getEquivalence().getDifferences().size());
+ assertTrue(C2toD1Diff.getEquivalence().getDifferences().contains(C2toD1Diff));
+ assertTrue(C2toD1Diff.getEquivalence().getDifferences().contains(D1toC2Diff));
+
+ assertNotNull(C2toD2Diff.getEquivalence());
+ assertSame(Integer.valueOf(2), C2toD2Diff.getEquivalence().getDifferences().size());
+ assertTrue(C2toD2Diff.getEquivalence().getDifferences().contains(C2toD2Diff));
+ assertTrue(C2toD2Diff.getEquivalence().getDifferences().contains(D2toC2Diff));
+ }
+
+ @Test
+ public void testA4UseCase() throws IOException {
+ final Resource left = input.getA4Left();
+ final Resource right = input.getA4Right();
+
+ final Comparison comparison = compare(left, right);
+
+ testA4(TestKind.LEFT, comparison);
+ }
+
+ private static void testA4(final TestKind kind, final Comparison comparison) {
+ List<Diff> differences = comparison.getDifferences();
+
+ // We should have no less and no more than 8 differences
+ assertSame(Integer.valueOf(4), Integer.valueOf(differences.size()));
+
+ Predicate<? super Diff> AtoBdestDiffDescription = null;
+ Predicate<? super Diff> AtoBsourceDiffDescription = null;
+ Predicate<? super Diff> BtoAdestDiffDescription = null;
+ Predicate<? super Diff> BtoAsourceDiffDescription = null;
+
+ if (kind.equals(TestKind.LEFT)) {
+ AtoBdestDiffDescription = addedToReference("Requirements.A", "destination", "Requirements.B");
+ AtoBsourceDiffDescription = addedToReference("Requirements.A", "source", "Requirements.B");
+ BtoAdestDiffDescription = addedToReference("Requirements.B", "destination", "Requirements.A");
+ BtoAsourceDiffDescription = addedToReference("Requirements.B", "source", "Requirements.A");
+ } else {
+ AtoBdestDiffDescription = removedFromReference("Requirements.A", "destination", "Requirements.B");
+ AtoBsourceDiffDescription = removedFromReference("Requirements.A", "source", "Requirements.B");
+ BtoAdestDiffDescription = removedFromReference("Requirements.B", "destination", "Requirements.A");
+ BtoAsourceDiffDescription = removedFromReference("Requirements.B", "source", "Requirements.A");
+ }
+
+ final Diff AtoBdestDiff = Iterators.find(differences.iterator(), AtoBdestDiffDescription);
+ final Diff AtoBsourceDiff = Iterators.find(differences.iterator(), AtoBsourceDiffDescription);
+ final Diff BtoAdestDiff = Iterators.find(differences.iterator(), BtoAdestDiffDescription);
+ final Diff BtoAsourceDiff = Iterators.find(differences.iterator(), BtoAsourceDiffDescription);
+
+ assertNotNull(AtoBdestDiff);
+ assertNotNull(AtoBsourceDiff);
+ assertNotNull(BtoAdestDiff);
+ assertNotNull(BtoAsourceDiff);
+
+ // CHECK EQUIVALENCE
+ assertSame(Integer.valueOf(2), comparison.getEquivalences().size());
+
+ assertNotNull(AtoBdestDiff.getEquivalence());
+ assertSame(Integer.valueOf(2), AtoBdestDiff.getEquivalence().getDifferences().size());
+ assertTrue(AtoBdestDiff.getEquivalence().getDifferences().contains(AtoBdestDiff));
+ assertTrue(AtoBdestDiff.getEquivalence().getDifferences().contains(BtoAsourceDiff));
+
+ assertNotNull(AtoBsourceDiff.getEquivalence());
+ assertSame(Integer.valueOf(2), AtoBsourceDiff.getEquivalence().getDifferences().size());
+ assertTrue(AtoBsourceDiff.getEquivalence().getDifferences().contains(AtoBsourceDiff));
+ assertTrue(AtoBsourceDiff.getEquivalence().getDifferences().contains(BtoAdestDiff));
+ }
+
+ @Test
+ public void testA5UseCase() throws IOException {
+ final Resource left = input.getA5Left();
+ final Resource right = input.getA5Right();
+
+ final Comparison comparison = compare(left, right);
+
+ testA5(TestKind.LEFT, comparison);
+ }
+
+ private static void testA5(final TestKind kind, final Comparison comparison) {
+ List<Diff> differences = comparison.getDifferences();
+
+ // We should have no less and no more than 12 differences
+ assertSame(Integer.valueOf(12), Integer.valueOf(differences.size()));
+
+ Predicate<? super Diff> changeRefA2BDiffDescription = null;
+ Predicate<? super Diff> changeRefB2ADiffDescription = null;
+ Predicate<? super Diff> changeRefC2DDiffDescription = null;
+ Predicate<? super Diff> changeRefD2CDiffDescription = null;
+ Predicate<? super Diff> changeRefE2FDiffDescription = null;
+ Predicate<? super Diff> changeRefF2EDiffDescription = null;
+ Predicate<? super Diff> addADiffDescription = null;
+ Predicate<? super Diff> addBDiffDescription = null;
+ Predicate<? super Diff> addCDiffDescription = null;
+ Predicate<? super Diff> addDDiffDescription = null;
+ Predicate<? super Diff> addEDiffDescription = null;
+ Predicate<? super Diff> addFDiffDescription = null;
+
+ if (kind.equals(TestKind.LEFT)) {
+ changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", null,
+ "Requirements.B");
+ changeRefB2ADiffDescription = changedReference("Requirements.B", "source", null, "Requirements.A");
+ changeRefC2DDiffDescription = addedToReference("Requirements.C", "destination", "Requirements.D");
+ changeRefD2CDiffDescription = changedReference("Requirements.D", "source", null, "Requirements.C");
+ changeRefE2FDiffDescription = addedToReference("Requirements.E", "destination", "Requirements.F");
+ changeRefF2EDiffDescription = addedToReference("Requirements.F", "source", "Requirements.E");
+
+ addADiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.A");
+ addBDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.B");
+ addCDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.C");
+ addDDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.D");
+ addEDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.E");
+ addFDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.F");
+ } else {
+ changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", "Requirements.B",
+ null);
+ changeRefB2ADiffDescription = changedReference("Requirements.B", "source", "Requirements.A", null);
+ changeRefC2DDiffDescription = removedFromReference("Requirements.C", "destination",
+ "Requirements.D");
+ changeRefD2CDiffDescription = changedReference("Requirements.D", "source", "Requirements.C", null);
+ changeRefE2FDiffDescription = removedFromReference("Requirements.E", "destination",
+ "Requirements.F");
+ changeRefF2EDiffDescription = removedFromReference("Requirements.F", "source", "Requirements.E");
+
+ addADiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.A");
+ addBDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.B");
+ addCDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.C");
+ addDDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.D");
+ addEDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.E");
+ addFDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.F");
+ }
+
+ final Diff changeRefA2BDiff = Iterators.find(differences.iterator(), changeRefA2BDiffDescription);
+ final Diff changeRefB2ADiff = Iterators.find(differences.iterator(), changeRefB2ADiffDescription);
+ final Diff changeRefC2DDiff = Iterators.find(differences.iterator(), changeRefC2DDiffDescription);
+ final Diff changeRefD2CDiff = Iterators.find(differences.iterator(), changeRefD2CDiffDescription);
+ final Diff changeRefE2FDiff = Iterators.find(differences.iterator(), changeRefE2FDiffDescription);
+ final Diff changeRefF2EDiff = Iterators.find(differences.iterator(), changeRefF2EDiffDescription);
+
+ final Diff addADiff = Iterators.find(differences.iterator(), addADiffDescription);
+ final Diff addBDiff = Iterators.find(differences.iterator(), addBDiffDescription);
+ final Diff addCDiff = Iterators.find(differences.iterator(), addCDiffDescription);
+ final Diff addDDiff = Iterators.find(differences.iterator(), addDDiffDescription);
+ final Diff addEDiff = Iterators.find(differences.iterator(), addEDiffDescription);
+ final Diff addFDiff = Iterators.find(differences.iterator(), addFDiffDescription);
+
+ assertNotNull(changeRefA2BDiff);
+ assertNotNull(changeRefB2ADiff);
+ assertNotNull(changeRefC2DDiff);
+ assertNotNull(changeRefD2CDiff);
+ assertNotNull(changeRefE2FDiff);
+ assertNotNull(changeRefF2EDiff);
+
+ assertNotNull(addADiff);
+ assertNotNull(addBDiff);
+ assertNotNull(addCDiff);
+ assertNotNull(addDDiff);
+ assertNotNull(addEDiff);
+ assertNotNull(addFDiff);
+
+ // CHECK EQUIVALENCE
+ assertSame(Integer.valueOf(3), comparison.getEquivalences().size());
+
+ assertNotNull(changeRefA2BDiff.getEquivalence());
+ assertSame(Integer.valueOf(2), changeRefA2BDiff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefA2BDiff));
+ assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefB2ADiff));
+
+ assertNotNull(changeRefC2DDiff.getEquivalence());
+ assertSame(Integer.valueOf(2), changeRefC2DDiff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefC2DDiff.getEquivalence().getDifferences().contains(changeRefC2DDiff));
+ assertTrue(changeRefC2DDiff.getEquivalence().getDifferences().contains(changeRefD2CDiff));
+
+ assertNotNull(changeRefE2FDiff.getEquivalence());
+ assertSame(Integer.valueOf(2), changeRefE2FDiff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefE2FDiff.getEquivalence().getDifferences().contains(changeRefE2FDiff));
+ assertTrue(changeRefE2FDiff.getEquivalence().getDifferences().contains(changeRefF2EDiff));
+ }
+
+ @Test
+ public void testB1UseCase() throws IOException {
+ final Resource left = input.getA1Left();
+ final Resource right = input.getA1Right();
+
+ Comparison comparison = compare(right, left);
+
+ testA1(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testB2UseCase() throws IOException {
+ final Resource left = input.getA2Left();
+ final Resource right = input.getA2Right();
+
+ Comparison comparison = compare(right, left);
+
+ testA2(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testB3UseCase() throws IOException {
+ final Resource left = input.getA3Left();
+ final Resource right = input.getA3Right();
+
+ Comparison comparison = compare(right, left);
+
+ testA3(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testB4UseCase() throws IOException {
+ final Resource left = input.getA4Left();
+ final Resource right = input.getA4Right();
+
+ Comparison comparison = compare(right, left);
+
+ testA4(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testB5UseCase() throws IOException {
+ final Resource left = input.getA5Left();
+ final Resource right = input.getA5Right();
+
+ Comparison comparison = compare(right, left);
+
+ testA5(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testC1UseCase() throws IOException {
+ final Resource left = input.getC1Left();
+ final Resource right = input.getC1Right();
+
+ final Comparison comparison = compare(left, right);
+
+ testC1(TestKind.LEFT, comparison);
+ }
+
+ private static void testC1(final TestKind kind, final Comparison comparison) {
+ List<Diff> differences = comparison.getDifferences();
+
+ // We should have no less and no more than 3 differences
+ assertSame(Integer.valueOf(3), Integer.valueOf(differences.size()));
+
+ Predicate<? super Diff> changeRefA2BDiffDescription = null;
+ Predicate<? super Diff> changeRefB2ADiffDescription = null;
+ Predicate<? super Diff> changeRefC2ADiffDescription = null;
+ if (kind.equals(TestKind.LEFT)) {
+ changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", "Requirements.B",
+ "Requirements.C");
+ changeRefB2ADiffDescription = changedReference("Requirements.B", "source", "Requirements.A", null);
+ changeRefC2ADiffDescription = changedReference("Requirements.C", "source", null, "Requirements.A");
+ } else {
+ changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", "Requirements.C",
+ "Requirements.B");
+ changeRefB2ADiffDescription = changedReference("Requirements.B", "source", null, "Requirements.A");
+ changeRefC2ADiffDescription = changedReference("Requirements.C", "source", "Requirements.A", null);
+ }
+
+ final Diff changeRefA2BDiff = Iterators.find(differences.iterator(), changeRefA2BDiffDescription);
+ final Diff changeRefB2ADiff = Iterators.find(differences.iterator(), changeRefB2ADiffDescription);
+ final Diff changeRefC2ADiff = Iterators.find(differences.iterator(), changeRefC2ADiffDescription);
+
+ assertNotNull(changeRefA2BDiff);
+ assertNotNull(changeRefB2ADiff);
+ assertNotNull(changeRefC2ADiff);
+
+ // CHECK EQUIVALENCE
+ assertSame(Integer.valueOf(1), comparison.getEquivalences().size());
+
+ assertNotNull(changeRefA2BDiff.getEquivalence());
+ assertSame(Integer.valueOf(3), changeRefA2BDiff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefA2BDiff));
+ assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefB2ADiff));
+ assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefC2ADiff));
+
+ }
+
+ @Test
+ public void testC2UseCase() throws IOException {
+ final Resource left = input.getC2Left();
+ final Resource right = input.getC2Right();
+
+ final Comparison comparison = compare(left, right);
+
+ testC2(TestKind.LEFT, comparison);
+ }
+
+ private static void testC2(final TestKind kind, final Comparison comparison) {
+ List<Diff> differences = comparison.getDifferences();
+
+ // We should have no less and no more than 4 differences
+ assertSame(Integer.valueOf(4), Integer.valueOf(differences.size()));
+
+ Predicate<? super Diff> changeRefA2BDiffDescription = null;
+ Predicate<? super Diff> changeRefB2ADiffDescription = null;
+ Predicate<? super Diff> changeRefC2ADiffDescription = null;
+ Predicate<? super Diff> addCDiffDescription = null;
+ if (kind.equals(TestKind.LEFT)) {
+ changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", "Requirements.B",
+ "Requirements.C");
+ changeRefB2ADiffDescription = changedReference("Requirements.B", "source", "Requirements.A", null);
+ changeRefC2ADiffDescription = changedReference("Requirements.C", "source", null, "Requirements.A");
+ addCDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.C");
+ } else {
+ changeRefA2BDiffDescription = changedReference("Requirements.A", "destination", "Requirements.C",
+ "Requirements.B");
+ changeRefB2ADiffDescription = changedReference("Requirements.B", "source", null, "Requirements.A");
+ changeRefC2ADiffDescription = changedReference("Requirements.C", "source", "Requirements.A", null);
+ addCDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.C");
+ }
+
+ final Diff changeRefA2BDiff = Iterators.find(differences.iterator(), changeRefA2BDiffDescription);
+ final Diff changeRefB2ADiff = Iterators.find(differences.iterator(), changeRefB2ADiffDescription);
+ final Diff changeRefC2ADiff = Iterators.find(differences.iterator(), changeRefC2ADiffDescription);
+ final Diff addCDiff = Iterators.find(differences.iterator(), addCDiffDescription);
+
+ assertNotNull(changeRefA2BDiff);
+ assertNotNull(changeRefB2ADiff);
+ assertNotNull(changeRefC2ADiff);
+ assertNotNull(addCDiff);
+
+ // CHECK EQUIVALENCE
+ assertSame(Integer.valueOf(1), comparison.getEquivalences().size());
+
+ assertNotNull(changeRefA2BDiff.getEquivalence());
+ assertSame(Integer.valueOf(3), changeRefA2BDiff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefA2BDiff));
+ assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefB2ADiff));
+ assertTrue(changeRefA2BDiff.getEquivalence().getDifferences().contains(changeRefC2ADiff));
+
+ }
+
+ @Test
+ public void testC3UseCase() throws IOException {
+ final Resource left = input.getC3Left();
+ final Resource right = input.getC3Right();
+
+ final Comparison comparison = compare(left, right);
+
+ testC3(TestKind.LEFT, comparison);
+ }
+
+ private static void testC3(final TestKind kind, final Comparison comparison) {
+ List<Diff> differences = comparison.getDifferences();
+
+ // We should have no less and no more than 4 differences
+ assertSame(Integer.valueOf(4), Integer.valueOf(differences.size()));
+
+ Predicate<? super Diff> changeRefA2CDiffDescription = null;
+ Predicate<? super Diff> deleteBDiffDescription = null;
+ Predicate<? super Diff> changeRefC2ADiffDescription = null;
+ Predicate<? super Diff> changeRefB2ADiffDescription = null;
+ if (kind.equals(TestKind.LEFT)) {
+ changeRefA2CDiffDescription = changedReference("Requirements.A", "destination", "Requirements.B",
+ "Requirements.C");
+ changeRefC2ADiffDescription = changedReference("Requirements.C", "source", null, "Requirements.A");
+ deleteBDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.B");
+ changeRefB2ADiffDescription = changedReference("Requirements.B", "source", "Requirements.A", null);
+ } else {
+ changeRefA2CDiffDescription = changedReference("Requirements.A", "destination", "Requirements.C",
+ "Requirements.B");
+ changeRefC2ADiffDescription = changedReference("Requirements.C", "source", "Requirements.A", null);
+ deleteBDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.B");
+ changeRefB2ADiffDescription = changedReference("Requirements.B", "source", null, "Requirements.A");
+ }
+
+ final Diff changeRefA2CDiff = Iterators.find(differences.iterator(), changeRefA2CDiffDescription);
+ final Diff changeRefC2ADiff = Iterators.find(differences.iterator(), changeRefC2ADiffDescription);
+ final Diff deleteBDiff = Iterators.find(differences.iterator(), deleteBDiffDescription);
+ final Diff changeRefB2ADiff = Iterators.find(differences.iterator(), changeRefB2ADiffDescription);
+
+ assertNotNull(changeRefA2CDiff);
+ assertNotNull(changeRefC2ADiff);
+ assertNotNull(deleteBDiff);
+ assertNotNull(changeRefB2ADiff);
+
+ // CHECK EQUIVALENCE
+ assertSame(Integer.valueOf(1), comparison.getEquivalences().size());
+
+ assertNotNull(changeRefA2CDiff.getEquivalence());
+ assertSame(Integer.valueOf(3), changeRefA2CDiff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefA2CDiff.getEquivalence().getDifferences().contains(changeRefA2CDiff));
+ assertTrue(changeRefA2CDiff.getEquivalence().getDifferences().contains(changeRefC2ADiff));
+ assertTrue(changeRefA2CDiff.getEquivalence().getDifferences().contains(changeRefB2ADiff));
+
+ }
+
+ @Test
+ public void testC4UseCase() throws IOException {
+ final Resource left = input.getC4Left();
+ final Resource right = input.getC4Right();
+
+ final Comparison comparison = compare(left, right);
+
+ testC4(TestKind.LEFT, comparison);
+ }
+
+ private static void testC4(final TestKind kind, final Comparison comparison) {
+ List<Diff> differences = comparison.getDifferences();
+
+ // We should have no less and no more than 5 differences
+ assertSame(Integer.valueOf(5), Integer.valueOf(differences.size()));
+
+ Predicate<? super Diff> changeRefA2CDiffDescription = null;
+ Predicate<? super Diff> deleteBDiffDescription = null;
+ Predicate<? super Diff> changeRefC2ADiffDescription = null;
+ Predicate<? super Diff> changeRefB2ADiffDescription = null;
+ Predicate<? super Diff> addCDiffDescription = null;
+ if (kind.equals(TestKind.LEFT)) {
+ changeRefA2CDiffDescription = changedReference("Requirements.A", "destination", "Requirements.B",
+ "Requirements.C");
+ changeRefC2ADiffDescription = changedReference("Requirements.C", "source", null, "Requirements.A");
+ deleteBDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.B");
+ changeRefB2ADiffDescription = changedReference("Requirements.B", "source", "Requirements.A", null);
+ addCDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.C");
+ } else {
+ changeRefA2CDiffDescription = changedReference("Requirements.A", "destination", "Requirements.C",
+ "Requirements.B");
+ changeRefC2ADiffDescription = changedReference("Requirements.C", "source", "Requirements.A", null);
+ deleteBDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.B");
+ changeRefB2ADiffDescription = changedReference("Requirements.B", "source", null, "Requirements.A");
+ addCDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.C");
+ }
+
+ final Diff changeRefA2CDiff = Iterators.find(differences.iterator(), changeRefA2CDiffDescription);
+ final Diff changeRefC2ADiff = Iterators.find(differences.iterator(), changeRefC2ADiffDescription);
+ final Diff deleteBDiff = Iterators.find(differences.iterator(), deleteBDiffDescription);
+ final Diff changeRefB2ADiff = Iterators.find(differences.iterator(), changeRefB2ADiffDescription);
+ final Diff addCDiff = Iterators.find(differences.iterator(), addCDiffDescription);
+
+ assertNotNull(changeRefA2CDiff);
+ assertNotNull(changeRefC2ADiff);
+ assertNotNull(deleteBDiff);
+ assertNotNull(changeRefB2ADiff);
+ assertNotNull(addCDiff);
+
+ // CHECK EQUIVALENCE
+ assertSame(Integer.valueOf(1), comparison.getEquivalences().size());
+
+ assertNotNull(changeRefA2CDiff.getEquivalence());
+ assertSame(Integer.valueOf(3), changeRefA2CDiff.getEquivalence().getDifferences().size());
+ assertTrue(changeRefA2CDiff.getEquivalence().getDifferences().contains(changeRefA2CDiff));
+ assertTrue(changeRefA2CDiff.getEquivalence().getDifferences().contains(changeRefC2ADiff));
+ assertTrue(changeRefA2CDiff.getEquivalence().getDifferences().contains(changeRefB2ADiff));
+
+ }
+
+ @Test
+ public void testD1UseCase() throws IOException {
+ final Resource left = input.getD1Left();
+ final Resource right = input.getD1Right();
+
+ final Comparison comparison = compare(left, right);
+
+ testD1(TestKind.LEFT, comparison);
+ }
+
+ private static void testD1(final TestKind kind, final Comparison comparison) {
+ List<Diff> differences = comparison.getDifferences();
+
+ // We should have no less and no more than 16 differences
+ assertSame(Integer.valueOf(16), Integer.valueOf(differences.size()));
+
+ Predicate<? super Diff> delBonADiffDescription = null;
+ Predicate<? super Diff> delAonBDiffDescription = null;
+ Predicate<? super Diff> addDonADiffDescription = null;
+ Predicate<? super Diff> addEonADiffDescription = null;
+ Predicate<? super Diff> delFonBDiffDescription = null;
+ Predicate<? super Diff> addFonCDiffDescription = null;
+ Predicate<? super Diff> addAonDDiffDescription = null;
+ Predicate<? super Diff> delFonDDiffDescription = null;
+ Predicate<? super Diff> addAonEDiffDescription = null;
+ Predicate<? super Diff> addFonEDiffDescription = null;
+ Predicate<? super Diff> delDonFDiffDescription = null;
+ Predicate<? super Diff> delBonFDiffDescription = null;
+ Predicate<? super Diff> addEonFDiffDescription = null;
+ Predicate<? super Diff> addConFDiffDescription = null;
+ Predicate<? super Diff> delBDiffDescription = null;
+ Predicate<? super Diff> addEDiffDescription = null;
+ if (kind.equals(TestKind.LEFT)) {
+ delBonADiffDescription = removedFromReference("Requirements.A", "destination", "Requirements.B");
+ delAonBDiffDescription = removedFromReference("Requirements.B", "source", "Requirements.A");
+ addDonADiffDescription = addedToReference("Requirements.A", "destination", "Requirements.D");
+ addEonADiffDescription = addedToReference("Requirements.A", "destination", "Requirements.E");
+ delFonBDiffDescription = removedFromReference("Requirements.B", "source", "Requirements.F");
+ addFonCDiffDescription = addedToReference("Requirements.C", "source", "Requirements.F");
+ addAonDDiffDescription = addedToReference("Requirements.D", "source", "Requirements.A");
+ delFonDDiffDescription = removedFromReference("Requirements.D", "source", "Requirements.F");
+ addAonEDiffDescription = addedToReference("Requirements.E", "source", "Requirements.A");
+ addFonEDiffDescription = addedToReference("Requirements.E", "source", "Requirements.F");
+ delDonFDiffDescription = removedFromReference("Requirements.F", "destination", "Requirements.D");
+ delBonFDiffDescription = removedFromReference("Requirements.F", "destination", "Requirements.B");
+ addEonFDiffDescription = addedToReference("Requirements.F", "destination", "Requirements.E");
+ addConFDiffDescription = addedToReference("Requirements.F", "destination", "Requirements.C");
+ delBDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.B");
+ addEDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.E");
+ } else {
+ delBonADiffDescription = addedToReference("Requirements.A", "destination", "Requirements.B");
+ delAonBDiffDescription = addedToReference("Requirements.B", "source", "Requirements.A");
+ addDonADiffDescription = removedFromReference("Requirements.A", "destination", "Requirements.D");
+ addEonADiffDescription = removedFromReference("Requirements.A", "destination", "Requirements.E");
+ delFonBDiffDescription = addedToReference("Requirements.B", "source", "Requirements.F");
+ addFonCDiffDescription = removedFromReference("Requirements.C", "source", "Requirements.F");
+ addAonDDiffDescription = removedFromReference("Requirements.D", "source", "Requirements.A");
+ delFonDDiffDescription = addedToReference("Requirements.D", "source", "Requirements.F");
+ addAonEDiffDescription = removedFromReference("Requirements.E", "source", "Requirements.A");
+ addFonEDiffDescription = removedFromReference("Requirements.E", "source", "Requirements.F");
+ delDonFDiffDescription = addedToReference("Requirements.F", "destination", "Requirements.D");
+ delBonFDiffDescription = addedToReference("Requirements.F", "destination", "Requirements.B");
+ addEonFDiffDescription = removedFromReference("Requirements.F", "destination", "Requirements.E");
+ addConFDiffDescription = removedFromReference("Requirements.F", "destination", "Requirements.C");
+ delBDiffDescription = addedToReference("Requirements", "containmentRef1", "Requirements.B");
+ addEDiffDescription = removedFromReference("Requirements", "containmentRef1", "Requirements.E");
+ }
+
+ final Diff delBonADiff = Iterators.find(differences.iterator(), delBonADiffDescription);
+ final Diff delAonBDiff = Iterators.find(differences.iterator(), delAonBDiffDescription);
+ final Diff addDonADiff = Iterators.find(differences.iterator(), addDonADiffDescription);
+ final Diff addEonADiff = Iterators.find(differences.iterator(), addEonADiffDescription);
+ final Diff delFonBDiff = Iterators.find(differences.iterator(), delFonBDiffDescription);
+ final Diff addFonCDiff = Iterators.find(differences.iterator(), addFonCDiffDescription);
+ final Diff addAonDDiff = Iterators.find(differences.iterator(), addAonDDiffDescription);
+ final Diff delFonDDiff = Iterators.find(differences.iterator(), delFonDDiffDescription);
+ final Diff addAonEDiff = Iterators.find(differences.iterator(), addAonEDiffDescription);
+ final Diff addFonEDiff = Iterators.find(differences.iterator(), addFonEDiffDescription);
+ final Diff delDonFDiff = Iterators.find(differences.iterator(), delDonFDiffDescription);
+ final Diff delBonFDiff = Iterators.find(differences.iterator(), delBonFDiffDescription);
+ final Diff addEonFDiff = Iterators.find(differences.iterator(), addEonFDiffDescription);
+ final Diff addConFDiff = Iterators.find(differences.iterator(), addConFDiffDescription);
+ final Diff delBDiff = Iterators.find(differences.iterator(), delBDiffDescription);
+ final Diff addEDiff = Iterators.find(differences.iterator(), addEDiffDescription);
+
+ assertNotNull(delBonADiff);
+ assertNotNull(delAonBDiff);
+ assertNotNull(addDonADiff);
+ assertNotNull(addEonADiff);
+ assertNotNull(delFonBDiff);
+ assertNotNull(addFonCDiff);
+ assertNotNull(addAonDDiff);
+ assertNotNull(delFonDDiff);
+ assertNotNull(addAonEDiff);
+ assertNotNull(addFonEDiff);
+ assertNotNull(delDonFDiff);
+ assertNotNull(delBonFDiff);
+ assertNotNull(addEonFDiff);
+ assertNotNull(addConFDiff);
+ assertNotNull(delBDiff);
+ assertNotNull(addEDiff);
+
+ // CHECK EQUIVALENCE
+ assertSame(Integer.valueOf(7), comparison.getEquivalences().size());
+
+ assertNotNull(delBonADiff.getEquivalence());
+ assertSame(Integer.valueOf(2), delBonADiff.getEquivalence().getDifferences().size());
+ assertTrue(delBonADiff.getEquivalence().getDifferences().contains(delBonADiff));
+ assertTrue(delBonADiff.getEquivalence().getDifferences().contains(delAonBDiff));
+
+ assertNotNull(addDonADiff.getEquivalence());
+ assertSame(Integer.valueOf(2), addDonADiff.getEquivalence().getDifferences().size());
+ assertTrue(addDonADiff.getEquivalence().getDifferences().contains(addDonADiff));
+ assertTrue(addDonADiff.getEquivalence().getDifferences().contains(addAonDDiff));
+
+ assertNotNull(addEonADiff.getEquivalence());
+ assertSame(Integer.valueOf(2), addEonADiff.getEquivalence().getDifferences().size());
+ assertTrue(addEonADiff.getEquivalence().getDifferences().contains(addEonADiff));
+ assertTrue(addEonADiff.getEquivalence().getDifferences().contains(addAonEDiff));
+
+ assertNotNull(delFonBDiff.getEquivalence());
+ assertSame(Integer.valueOf(2), delFonBDiff.getEquivalence().getDifferences().size());
+ assertTrue(delFonBDiff.getEquivalence().getDifferences().contains(delFonBDiff));
+ assertTrue(delFonBDiff.getEquivalence().getDifferences().contains(delBonFDiff));
+
+ assertNotNull(addFonCDiff.getEquivalence());
+ assertSame(Integer.valueOf(2), addFonCDiff.getEquivalence().getDifferences().size());
+ assertTrue(addFonCDiff.getEquivalence().getDifferences().contains(addFonCDiff));
+ assertTrue(addFonCDiff.getEquivalence().getDifferences().contains(addConFDiff));
+
+ assertNotNull(delFonDDiff.getEquivalence());
+ assertSame(Integer.valueOf(2), delFonDDiff.getEquivalence().getDifferences().size());
+ assertTrue(delFonDDiff.getEquivalence().getDifferences().contains(delFonDDiff));
+ assertTrue(delFonDDiff.getEquivalence().getDifferences().contains(delDonFDiff));
+
+ assertNotNull(addFonEDiff.getEquivalence());
+ assertSame(Integer.valueOf(2), addFonEDiff.getEquivalence().getDifferences().size());
+ assertTrue(addFonEDiff.getEquivalence().getDifferences().contains(addFonEDiff));
+ assertTrue(addFonEDiff.getEquivalence().getDifferences().contains(addEonFDiff));
+
+ }
+
+ @Test
+ public void testE1UseCase() throws IOException {
+ final Resource left = input.getE1Left();
+ final Resource right = input.getE1Right();
+ final Resource ancestor = input.getE1Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testA1(TestKind.LEFT, comparison);
+ }
+
+ @Test
+ public void testE2UseCase() throws IOException {
+ final Resource left = input.getE2Left();
+ final Resource right = input.getE2Right();
+ final Resource ancestor = input.getE2Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testA2(TestKind.LEFT, comparison);
+ }
+
+ @Test
+ public void testE3UseCase() throws IOException {
+ final Resource left = input.getE3Left();
+ final Resource right = input.getE3Right();
+ final Resource ancestor = input.getE3Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testA3(TestKind.LEFT, comparison);
+ }
+
+ @Test
+ public void testE4UseCase() throws IOException {
+ final Resource left = input.getE4Left();
+ final Resource right = input.getE4Right();
+ final Resource ancestor = input.getE4Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testA4(TestKind.LEFT, comparison);
+ }
+
+ @Test
+ public void testE5UseCase() throws IOException {
+ final Resource left = input.getE5Left();
+ final Resource right = input.getE5Right();
+ final Resource ancestor = input.getE5Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testA5(TestKind.LEFT, comparison);
+ }
+
+ @Test
+ public void testE6UseCase() throws IOException {
+ final Resource left = input.getE6Left();
+ final Resource right = input.getE6Right();
+ final Resource ancestor = input.getE6Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testC1(TestKind.LEFT, comparison);
+ }
+
+ @Test
+ public void testE7UseCase() throws IOException {
+ final Resource left = input.getE7Left();
+ final Resource right = input.getE7Right();
+ final Resource ancestor = input.getE7Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testC2(TestKind.LEFT, comparison);
+ }
+
+ @Test
+ public void testE8UseCase() throws IOException {
+ final Resource left = input.getE8Left();
+ final Resource right = input.getE8Right();
+ final Resource ancestor = input.getE8Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testC3(TestKind.LEFT, comparison);
+ }
+
+ @Test
+ public void testE9UseCase() throws IOException {
+ final Resource left = input.getE9Left();
+ final Resource right = input.getE9Right();
+ final Resource ancestor = input.getE9Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testC4(TestKind.LEFT, comparison);
+ }
+
+ @Test
+ public void testE10UseCase() throws IOException {
+ final Resource left = input.getE10Left();
+ final Resource right = input.getE10Right();
+ final Resource ancestor = input.getE10Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testD1(TestKind.LEFT, comparison);
+ }
+
+ @Test
+ public void testF1UseCase() throws IOException {
+ final Resource left = input.getF1Left();
+ final Resource right = input.getF1Right();
+ final Resource ancestor = input.getF1Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testA1(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testF2UseCase() throws IOException {
+ final Resource left = input.getF2Left();
+ final Resource right = input.getF2Right();
+ final Resource ancestor = input.getF2Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testA2(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testF3UseCase() throws IOException {
+ final Resource left = input.getF3Left();
+ final Resource right = input.getF3Right();
+ final Resource ancestor = input.getF3Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testA3(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testF4UseCase() throws IOException {
+ final Resource left = input.getF4Left();
+ final Resource right = input.getF4Right();
+ final Resource ancestor = input.getF4Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testA4(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testF5UseCase() throws IOException {
+ final Resource left = input.getF5Left();
+ final Resource right = input.getF5Right();
+ final Resource ancestor = input.getF5Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testA5(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testF6UseCase() throws IOException {
+ final Resource left = input.getF6Left();
+ final Resource right = input.getF6Right();
+ final Resource ancestor = input.getF6Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testC1(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testF7UseCase() throws IOException {
+ final Resource left = input.getF7Left();
+ final Resource right = input.getF7Right();
+ final Resource ancestor = input.getF7Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testC2(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testF8UseCase() throws IOException {
+ final Resource left = input.getF8Left();
+ final Resource right = input.getF8Right();
+ final Resource ancestor = input.getF8Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testC3(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testF9UseCase() throws IOException {
+ final Resource left = input.getF9Left();
+ final Resource right = input.getF9Right();
+ final Resource ancestor = input.getF9Ancestor();
+
+ Comparison comparison = compare(left, right, ancestor);
+
+ testC4(TestKind.RIGHT, comparison);
+ }
+
+ @Test
+ public void testF10UseCase() throws IOException {
+ final Resource left = input.getF10Left();
+ final Resource right = input.getF10Right();
+ final Resource ancestor = input.getF10Ancestor();
+
+ final Comparison comparison = compare(left, right, ancestor);
+
+ testD1(TestKind.RIGHT, comparison);
+ }
+
+ private Comparison compare(Notifier left, Notifier right) {
+ return compare(left, right, null);
+ }
+
+ private Comparison compare(Notifier left, Notifier right, Notifier ancestor) {
+ final IComparisonScope scope = new DefaultComparisonScope(left, right, ancestor);
+ return EMFCompare.builder().build().compare(scope);
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/equi/data/EquiInputData.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/equi/data/EquiInputData.java
index 2cf4542b6..5d8eb539a 100644
--- a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/equi/data/EquiInputData.java
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/equi/data/EquiInputData.java
@@ -1,338 +1,338 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2013 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.equi.data;
-
-import java.io.IOException;
-
-import org.eclipse.emf.compare.tests.framework.AbstractInputData;
-import org.eclipse.emf.ecore.resource.Resource;
-
-public class EquiInputData extends AbstractInputData {
- public Resource getA1Left() throws IOException {
- return loadFromClassLoader("a1/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getA1Right() throws IOException {
- return loadFromClassLoader("a1/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getA2Left() throws IOException {
- return loadFromClassLoader("a2/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getA2Right() throws IOException {
- return loadFromClassLoader("a2/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getA3Left() throws IOException {
- return loadFromClassLoader("a3/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getA3Right() throws IOException {
- return loadFromClassLoader("a3/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getA4Left() throws IOException {
- return loadFromClassLoader("a4/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getA4Right() throws IOException {
- return loadFromClassLoader("a4/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getA5Left() throws IOException {
- return loadFromClassLoader("a5/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getA5Right() throws IOException {
- return loadFromClassLoader("a5/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getC1Left() throws IOException {
- return loadFromClassLoader("c1/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getC1Right() throws IOException {
- return loadFromClassLoader("c1/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getC2Left() throws IOException {
- return loadFromClassLoader("c2/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getC2Right() throws IOException {
- return loadFromClassLoader("c2/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getC3Left() throws IOException {
- return loadFromClassLoader("c3/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getC3Right() throws IOException {
- return loadFromClassLoader("c3/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getC4Left() throws IOException {
- return loadFromClassLoader("c4/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getC4Right() throws IOException {
- return loadFromClassLoader("c4/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getD1Left() throws IOException {
- return loadFromClassLoader("d1/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getD1Right() throws IOException {
- return loadFromClassLoader("d1/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE1Left() throws IOException {
- return loadFromClassLoader("e1/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE1Right() throws IOException {
- return loadFromClassLoader("e1/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE1Ancestor() throws IOException {
- return loadFromClassLoader("e1/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE2Left() throws IOException {
- return loadFromClassLoader("e2/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE2Right() throws IOException {
- return loadFromClassLoader("e2/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE2Ancestor() throws IOException {
- return loadFromClassLoader("e2/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE3Left() throws IOException {
- return loadFromClassLoader("e3/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE3Right() throws IOException {
- return loadFromClassLoader("e3/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE3Ancestor() throws IOException {
- return loadFromClassLoader("e3/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE4Left() throws IOException {
- return loadFromClassLoader("e4/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE4Right() throws IOException {
- return loadFromClassLoader("e4/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE4Ancestor() throws IOException {
- return loadFromClassLoader("e4/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE5Left() throws IOException {
- return loadFromClassLoader("e5/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE5Right() throws IOException {
- return loadFromClassLoader("e5/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE5Ancestor() throws IOException {
- return loadFromClassLoader("e5/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE6Left() throws IOException {
- return loadFromClassLoader("e6/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE6Right() throws IOException {
- return loadFromClassLoader("e6/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE6Ancestor() throws IOException {
- return loadFromClassLoader("e6/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE7Left() throws IOException {
- return loadFromClassLoader("e7/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE7Right() throws IOException {
- return loadFromClassLoader("e7/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE7Ancestor() throws IOException {
- return loadFromClassLoader("e7/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE8Left() throws IOException {
- return loadFromClassLoader("e8/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE8Right() throws IOException {
- return loadFromClassLoader("e8/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE8Ancestor() throws IOException {
- return loadFromClassLoader("e8/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE9Left() throws IOException {
- return loadFromClassLoader("e9/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE9Right() throws IOException {
- return loadFromClassLoader("e9/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE9Ancestor() throws IOException {
- return loadFromClassLoader("e9/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE10Left() throws IOException {
- return loadFromClassLoader("e10/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE10Right() throws IOException {
- return loadFromClassLoader("e10/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getE10Ancestor() throws IOException {
- return loadFromClassLoader("e10/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF1Left() throws IOException {
- return loadFromClassLoader("f1/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF1Right() throws IOException {
- return loadFromClassLoader("f1/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF1Ancestor() throws IOException {
- return loadFromClassLoader("f1/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF2Left() throws IOException {
- return loadFromClassLoader("f2/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF2Right() throws IOException {
- return loadFromClassLoader("f2/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF2Ancestor() throws IOException {
- return loadFromClassLoader("f2/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF3Left() throws IOException {
- return loadFromClassLoader("f3/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF3Right() throws IOException {
- return loadFromClassLoader("f3/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF3Ancestor() throws IOException {
- return loadFromClassLoader("f3/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF4Left() throws IOException {
- return loadFromClassLoader("f4/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF4Right() throws IOException {
- return loadFromClassLoader("f4/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF4Ancestor() throws IOException {
- return loadFromClassLoader("f4/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF5Left() throws IOException {
- return loadFromClassLoader("f5/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF5Right() throws IOException {
- return loadFromClassLoader("f5/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF5Ancestor() throws IOException {
- return loadFromClassLoader("f5/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF6Left() throws IOException {
- return loadFromClassLoader("f6/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF6Right() throws IOException {
- return loadFromClassLoader("f6/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF6Ancestor() throws IOException {
- return loadFromClassLoader("f6/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF7Left() throws IOException {
- return loadFromClassLoader("f7/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF7Right() throws IOException {
- return loadFromClassLoader("f7/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF7Ancestor() throws IOException {
- return loadFromClassLoader("f7/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF8Left() throws IOException {
- return loadFromClassLoader("f8/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF8Right() throws IOException {
- return loadFromClassLoader("f8/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF8Ancestor() throws IOException {
- return loadFromClassLoader("f8/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF9Left() throws IOException {
- return loadFromClassLoader("f9/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF9Right() throws IOException {
- return loadFromClassLoader("f9/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF9Ancestor() throws IOException {
- return loadFromClassLoader("f9/ancestor.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF10Left() throws IOException {
- return loadFromClassLoader("f10/left.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF10Right() throws IOException {
- return loadFromClassLoader("f10/right.nodes"); //$NON-NLS-1$
- }
-
- public Resource getF10Ancestor() throws IOException {
- return loadFromClassLoader("f10/ancestor.nodes"); //$NON-NLS-1$
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2013 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.equi.data;
+
+import java.io.IOException;
+
+import org.eclipse.emf.compare.tests.framework.AbstractInputData;
+import org.eclipse.emf.ecore.resource.Resource;
+
+public class EquiInputData extends AbstractInputData {
+ public Resource getA1Left() throws IOException {
+ return loadFromClassLoader("a1/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getA1Right() throws IOException {
+ return loadFromClassLoader("a1/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getA2Left() throws IOException {
+ return loadFromClassLoader("a2/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getA2Right() throws IOException {
+ return loadFromClassLoader("a2/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getA3Left() throws IOException {
+ return loadFromClassLoader("a3/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getA3Right() throws IOException {
+ return loadFromClassLoader("a3/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getA4Left() throws IOException {
+ return loadFromClassLoader("a4/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getA4Right() throws IOException {
+ return loadFromClassLoader("a4/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getA5Left() throws IOException {
+ return loadFromClassLoader("a5/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getA5Right() throws IOException {
+ return loadFromClassLoader("a5/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getC1Left() throws IOException {
+ return loadFromClassLoader("c1/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getC1Right() throws IOException {
+ return loadFromClassLoader("c1/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getC2Left() throws IOException {
+ return loadFromClassLoader("c2/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getC2Right() throws IOException {
+ return loadFromClassLoader("c2/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getC3Left() throws IOException {
+ return loadFromClassLoader("c3/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getC3Right() throws IOException {
+ return loadFromClassLoader("c3/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getC4Left() throws IOException {
+ return loadFromClassLoader("c4/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getC4Right() throws IOException {
+ return loadFromClassLoader("c4/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getD1Left() throws IOException {
+ return loadFromClassLoader("d1/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getD1Right() throws IOException {
+ return loadFromClassLoader("d1/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE1Left() throws IOException {
+ return loadFromClassLoader("e1/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE1Right() throws IOException {
+ return loadFromClassLoader("e1/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE1Ancestor() throws IOException {
+ return loadFromClassLoader("e1/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE2Left() throws IOException {
+ return loadFromClassLoader("e2/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE2Right() throws IOException {
+ return loadFromClassLoader("e2/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE2Ancestor() throws IOException {
+ return loadFromClassLoader("e2/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE3Left() throws IOException {
+ return loadFromClassLoader("e3/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE3Right() throws IOException {
+ return loadFromClassLoader("e3/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE3Ancestor() throws IOException {
+ return loadFromClassLoader("e3/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE4Left() throws IOException {
+ return loadFromClassLoader("e4/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE4Right() throws IOException {
+ return loadFromClassLoader("e4/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE4Ancestor() throws IOException {
+ return loadFromClassLoader("e4/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE5Left() throws IOException {
+ return loadFromClassLoader("e5/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE5Right() throws IOException {
+ return loadFromClassLoader("e5/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE5Ancestor() throws IOException {
+ return loadFromClassLoader("e5/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE6Left() throws IOException {
+ return loadFromClassLoader("e6/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE6Right() throws IOException {
+ return loadFromClassLoader("e6/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE6Ancestor() throws IOException {
+ return loadFromClassLoader("e6/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE7Left() throws IOException {
+ return loadFromClassLoader("e7/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE7Right() throws IOException {
+ return loadFromClassLoader("e7/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE7Ancestor() throws IOException {
+ return loadFromClassLoader("e7/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE8Left() throws IOException {
+ return loadFromClassLoader("e8/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE8Right() throws IOException {
+ return loadFromClassLoader("e8/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE8Ancestor() throws IOException {
+ return loadFromClassLoader("e8/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE9Left() throws IOException {
+ return loadFromClassLoader("e9/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE9Right() throws IOException {
+ return loadFromClassLoader("e9/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE9Ancestor() throws IOException {
+ return loadFromClassLoader("e9/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE10Left() throws IOException {
+ return loadFromClassLoader("e10/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE10Right() throws IOException {
+ return loadFromClassLoader("e10/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getE10Ancestor() throws IOException {
+ return loadFromClassLoader("e10/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF1Left() throws IOException {
+ return loadFromClassLoader("f1/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF1Right() throws IOException {
+ return loadFromClassLoader("f1/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF1Ancestor() throws IOException {
+ return loadFromClassLoader("f1/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF2Left() throws IOException {
+ return loadFromClassLoader("f2/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF2Right() throws IOException {
+ return loadFromClassLoader("f2/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF2Ancestor() throws IOException {
+ return loadFromClassLoader("f2/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF3Left() throws IOException {
+ return loadFromClassLoader("f3/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF3Right() throws IOException {
+ return loadFromClassLoader("f3/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF3Ancestor() throws IOException {
+ return loadFromClassLoader("f3/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF4Left() throws IOException {
+ return loadFromClassLoader("f4/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF4Right() throws IOException {
+ return loadFromClassLoader("f4/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF4Ancestor() throws IOException {
+ return loadFromClassLoader("f4/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF5Left() throws IOException {
+ return loadFromClassLoader("f5/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF5Right() throws IOException {
+ return loadFromClassLoader("f5/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF5Ancestor() throws IOException {
+ return loadFromClassLoader("f5/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF6Left() throws IOException {
+ return loadFromClassLoader("f6/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF6Right() throws IOException {
+ return loadFromClassLoader("f6/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF6Ancestor() throws IOException {
+ return loadFromClassLoader("f6/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF7Left() throws IOException {
+ return loadFromClassLoader("f7/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF7Right() throws IOException {
+ return loadFromClassLoader("f7/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF7Ancestor() throws IOException {
+ return loadFromClassLoader("f7/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF8Left() throws IOException {
+ return loadFromClassLoader("f8/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF8Right() throws IOException {
+ return loadFromClassLoader("f8/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF8Ancestor() throws IOException {
+ return loadFromClassLoader("f8/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF9Left() throws IOException {
+ return loadFromClassLoader("f9/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF9Right() throws IOException {
+ return loadFromClassLoader("f9/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF9Ancestor() throws IOException {
+ return loadFromClassLoader("f9/ancestor.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF10Left() throws IOException {
+ return loadFromClassLoader("f10/left.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF10Right() throws IOException {
+ return loadFromClassLoader("f10/right.nodes"); //$NON-NLS-1$
+ }
+
+ public Resource getF10Ancestor() throws IOException {
+ return loadFromClassLoader("f10/ancestor.nodes"); //$NON-NLS-1$
+ }
+}

Back to the top