diff options
author | Philip Langer | 2014-12-18 17:53:29 +0000 |
---|---|---|
committer | Axel RICHARD | 2014-12-19 14:54:58 +0000 |
commit | 5da79abd27094cb3b12757ba5f82e4378c9e9f3d (patch) | |
tree | 471a5fb0d12edc0b5c67d68b34466ab22c2fbbd4 /plugins/org.eclipse.emf.compare.uml2.tests/src/org | |
parent | 0c9a457cb9dfe7167b96e4bb109af8f6be5b4612 (diff) | |
download | org.eclipse.emf.compare-5da79abd27094cb3b12757ba5f82e4378c9e9f3d.tar.gz org.eclipse.emf.compare-5da79abd27094cb3b12757ba5f82e4378c9e9f3d.tar.xz org.eclipse.emf.compare-5da79abd27094cb3b12757ba5f82e4378c9e9f3d.zip |
[455677] Fixes insertion index of opaque element body values additions
Instead of relying on the DiffUtil.findInsertionIndex, which finds the
insertion index on a best effort basis and does not know about the
connection between language and body values, we now ensure that we
always merge the language value first and then select the insertion
index for the body value based on the index of the already merged
language value.
Bug: 455677
Change-Id: Icf3ff278e9ec55f2fc9440f537459d73d7267bb6
Signed-off-by: Philip Langer <planger@eclipsesource.com>
Diffstat (limited to 'plugins/org.eclipse.emf.compare.uml2.tests/src/org')
-rw-r--r-- | plugins/org.eclipse.emf.compare.uml2.tests/src/org/eclipse/emf/compare/uml2/tests/opaque/OpaqueElementBodyChangeMergeTest.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.compare.uml2.tests/src/org/eclipse/emf/compare/uml2/tests/opaque/OpaqueElementBodyChangeMergeTest.java b/plugins/org.eclipse.emf.compare.uml2.tests/src/org/eclipse/emf/compare/uml2/tests/opaque/OpaqueElementBodyChangeMergeTest.java index 444da5f97..78c576dc1 100644 --- a/plugins/org.eclipse.emf.compare.uml2.tests/src/org/eclipse/emf/compare/uml2/tests/opaque/OpaqueElementBodyChangeMergeTest.java +++ b/plugins/org.eclipse.emf.compare.uml2.tests/src/org/eclipse/emf/compare/uml2/tests/opaque/OpaqueElementBodyChangeMergeTest.java @@ -473,6 +473,35 @@ public class OpaqueElementBodyChangeMergeTest extends AbstractUMLTest { } @Test + public void testA10UseCaseRtoL_RevertLeftDeletion() throws IOException { + Resource origin = input.getA10Origin(); + Resource left = input.getA10Left(); + Resource right = input.getA10Right(); + + Comparison comparison = compare(left, right, origin); + assertNoRealConflict(comparison); + + revertLeftOpaqueElementBodyChanges(comparison); + + EObject leftEObject = left.getEObject(OPAQUE_ACTION1_ID); + OpaqueAction leftOpaqueAction = (OpaqueAction)leftEObject; + + String leftLanguageAt0 = leftOpaqueAction.getLanguages().get(0); + String leftBodyAt0 = leftOpaqueAction.getBodies().get(0); + + assertEquals("JAVA", leftLanguageAt0); + assertEquals(EXPECTED_JAVA, leftBodyAt0); + + String leftLanguageAt1 = leftOpaqueAction.getLanguages().get(1); + String leftBodyAt1 = leftOpaqueAction.getBodies().get(1); + + assertEquals("OCL", leftLanguageAt1); + assertEquals(EXPECTED_OCL, leftBodyAt1); + } + + // reverting addition and insertion index? + + @Test public void testA11UseCase() throws IOException { Resource origin = input.getA11Origin(); Resource left = input.getA11Left(); |