Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Redor2021-02-16 16:59:14 +0000
committerLaurent Redor2021-02-19 13:23:55 +0000
commit683712c03917f7206ba342a2b0cccc2b95606ffc (patch)
tree47d36ee775c322e057182a5bc3bc0a892f468466
parent353cd0a7a74f77f31800692db9b27d62cbc151d1 (diff)
downloadorg.eclipse.sirius-683712c03917f7206ba342a2b0cccc2b95606ffc.tar.gz
org.eclipse.sirius-683712c03917f7206ba342a2b0cccc2b95606ffc.tar.xz
org.eclipse.sirius-683712c03917f7206ba342a2b0cccc2b95606ffc.zip
[570524] Add sequence tests for layout copy between different sessions
Bug: 570524 Change-Id: I3cc93d89c752407f87c27ef479cc09208244db42 Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.tests.junit/data/sequence/unit/layout/mappingbased/fixture2.aird11
-rw-r--r--plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/suite/diagram/AllDiagramPluginsTests.java4
-rw-r--r--plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/format/data/MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramDiffSessionTest.java87
-rw-r--r--plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/format/data/MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramTest.java16
4 files changed, 112 insertions, 6 deletions
diff --git a/plugins/org.eclipse.sirius.tests.junit/data/sequence/unit/layout/mappingbased/fixture2.aird b/plugins/org.eclipse.sirius.tests.junit/data/sequence/unit/layout/mappingbased/fixture2.aird
new file mode 100644
index 0000000000..1676995c4e
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.junit/data/sequence/unit/layout/mappingbased/fixture2.aird
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/sequence/description/2.0.0" xmlns:description_2="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:interactions="http://www.eclipse.org/sirius/sample/interactions" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.3/notation" xmlns:sequence="http://www.eclipse.org/sirius/diagram/sequence/2.0.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/sequence/description/2.0.0 http://www.eclipse.org/sirius/diagram/sequence/2.0.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style">
+ <viewpoint:DAnalysis uid="_8aRfEN2zEd-ZhcM4sDvRBQ" selectedViews="_9W1N8N2zEd-ZhcM4sDvRBQ" version="14.3.1.202003261200">
+ <semanticResources>fixture.interactions</semanticResources>
+ <semanticResources>types.ecore</semanticResources>
+ <semanticResources>targetfixture.interactions</semanticResources>
+ <ownedViews xmi:type="viewpoint:DView" uid="_9W1N8N2zEd-ZhcM4sDvRBQ">
+ <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.sirius.sample.interactions.design/description/interaction.odesign#//@ownedViewpoints[name='Interactions']"/>
+ </ownedViews>
+ </viewpoint:DAnalysis>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/suite/diagram/AllDiagramPluginsTests.java b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/suite/diagram/AllDiagramPluginsTests.java
index d1c5df7ae4..193f13a54f 100644
--- a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/suite/diagram/AllDiagramPluginsTests.java
+++ b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/suite/diagram/AllDiagramPluginsTests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2020 THALES GLOBAL SERVICES and others.
+ * Copyright (c) 2010, 2021 THALES GLOBAL SERVICES and others.
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
@@ -138,6 +138,7 @@ import org.eclipse.sirius.tests.unit.diagram.format.data.MappingBasedSiriusForma
import org.eclipse.sirius.tests.unit.diagram.format.data.MappingBasedSiriusFormatDataManagerCallCheckTest;
import org.eclipse.sirius.tests.unit.diagram.format.data.MappingBasedSiriusFormatDataManagerCreateTargetDiagramDiffSessionTest;
import org.eclipse.sirius.tests.unit.diagram.format.data.MappingBasedSiriusFormatDataManagerCreateTargetDiagramTest;
+import org.eclipse.sirius.tests.unit.diagram.format.data.MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramDiffSessionTest;
import org.eclipse.sirius.tests.unit.diagram.format.data.MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramTest;
import org.eclipse.sirius.tests.unit.diagram.format.data.MappingBasedSiriusFormatDataManagerExistingTargetDiagramDiffSessionTest;
import org.eclipse.sirius.tests.unit.diagram.format.data.MappingBasedSiriusFormatDataManagerExistingTargetDiagramTest;
@@ -459,6 +460,7 @@ public class AllDiagramPluginsTests {
suite.addTest(new JUnit4TestAdapter(MappingBasedSiriusFormatDataManagerExternalRefTest.class));
suite.addTest(new JUnit4TestAdapter(MappingBasedSiriusFormatDataManagerCreateTargetDiagramDiffSessionTest.class));
suite.addTest(new JUnit4TestAdapter(MappingBasedSiriusFormatDataManagerExistingTargetDiagramDiffSessionTest.class));
+ suite.addTest(new JUnit4TestAdapter(MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramDiffSessionTest.class));
suite.addTest(new JUnit4TestAdapter(MappingBasedSiriusFormatDataManagerCallCheckTest.class));
suite.addTest(new JUnit4TestAdapter(MappingBasedSiriusFormatDataManagerCallCheckSequenceTest.class));
suite.addTestSuite(LabelPositionOnContainerAndListTest.class);
diff --git a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/format/data/MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramDiffSessionTest.java b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/format/data/MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramDiffSessionTest.java
new file mode 100644
index 0000000000..37dae44c96
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/format/data/MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramDiffSessionTest.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * Copyright (c) 2021 Obeo.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.tests.unit.diagram.format.data;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.sirius.business.api.session.Session;
+import org.eclipse.sirius.diagram.ui.tools.api.format.semantic.MappingBasedSiriusFormatDataManager;
+import org.eclipse.sirius.tests.unit.diagram.format.data.manager.mappingbased.MappingBasedTestConfiguration;
+import org.junit.Before;
+
+/**
+ * Test class for {@link MappingBasedSiriusFormatDataManager}. Inspired from
+ * {@link SiriusFormatDataManagerForSemanticElementsApplyWithPredefinedDataTest}.
+ *
+ * @author lredor
+ */
+public class MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramDiffSessionTest extends MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramTest {
+
+ public MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramDiffSessionTest(Representation representationToCopyFormat) throws Exception {
+ super(representationToCopyFormat);
+ }
+
+ protected Session targetSession;
+
+ protected EObject targetSemanticModel;
+
+ protected EObject targetSemanticTargetModel;
+
+ /** Name of the file containing the session target mapped elements */
+ protected static final String SESSION_TARGET_MODEL_NAME = "fixture2.aird";
+
+ @Override
+ @Before
+ public void setUp() throws Exception {
+
+ genericSetUp(getSemanticTargetModelPaths(), getModelerPathAsList(), getSessionTargetModelPath());
+
+ targetSession = session;
+ targetSemanticModel = semanticModel;
+ targetSemanticTargetModel = getModelFromPath(getSemanticTargetModelPaths().get(0), targetSession);
+
+ super.setUp();
+ }
+
+ protected List<String> getSemanticTargetModelPaths() {
+ return Collections.singletonList(PLUGIN_PATH + getPlatformRelatedDataPath() + getSemanticTargetModelName());
+ }
+
+ protected String getSessionTargetModelPath() {
+ return PLUGIN_PATH + getPlatformRelatedDataPath() + SESSION_TARGET_MODEL_NAME;
+ }
+
+ protected MappingBasedTestConfiguration getFullTestConfiguration(EObject root) {
+ Map<String, String> full_map = new HashMap<String, String>();
+ String sourceRootID = MappingBasedTestConfiguration.getID(root);
+ String targetRootID = MappingBasedTestConfiguration.getID(root, "target");
+ full_map.put(sourceRootID, targetRootID);
+
+ root.eAllContents().forEachRemaining(element -> {
+ String sourceID = MappingBasedTestConfiguration.getID(element);
+ String targetID = MappingBasedTestConfiguration.getID(element, "target");
+ full_map.put(sourceID, targetID);
+ });
+
+ return new MappingBasedTestConfiguration(semanticModel, targetSemanticTargetModel, full_map, targetRootID, "full");
+ }
+
+ @Override
+ protected Session getTargetSession() {
+ return targetSession;
+ }
+}
diff --git a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/format/data/MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramTest.java b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/format/data/MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramTest.java
index 938e4ccd58..9873bb4a3c 100644
--- a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/format/data/MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramTest.java
+++ b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/format/data/MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramTest.java
@@ -25,6 +25,7 @@ import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.transaction.RecordingCommand;
import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
+import org.eclipse.sirius.business.api.session.Session;
import org.eclipse.sirius.diagram.DDiagram;
import org.eclipse.sirius.diagram.DDiagramElement;
import org.eclipse.sirius.diagram.DSemanticDiagram;
@@ -246,10 +247,11 @@ public class MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramTest
protected void doExecute() {
// Update diagram, but transaction will be
// rollbacked
- DDiagram newDiagram = MappingBasedSiriusFormatManagerFactory.getInstance().applyFormatOnNewDiagram(session, dDiagram, explicitMappingTestConfiguration.getObjectsMap(), session,
+ DDiagram newDiagram = MappingBasedSiriusFormatManagerFactory.getInstance().applyFormatOnNewDiagram(session, dDiagram, explicitMappingTestConfiguration.getObjectsMap(),
+ getTargetSession(),
newDiagramName, explicitMappingTestConfiguration.getTargetRoot(), includeNotes);
- Collection<DiagramEditPart> targetDiagramEditParts = getDiagramEditPart(session, newDiagram);
+ Collection<DiagramEditPart> targetDiagramEditParts = getDiagramEditPart(getTargetSession(), newDiagram);
assertTrue(!targetDiagramEditParts.isEmpty());
DiagramEditPart targetDiagramEditPart = targetDiagramEditParts.stream().findFirst().get();
@@ -264,10 +266,10 @@ public class MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramTest
try {
// Force rollback of transaction to let raw diagram
// unchanged
- sourceDiagramEditPart.getEditingDomain().addResourceSetListener(ROLLBACK_LISTENER);
- sourceDiagramEditPart.getEditingDomain().getCommandStack().execute(command);
+ getTargetSession().getTransactionalEditingDomain().addResourceSetListener(ROLLBACK_LISTENER);
+ getTargetSession().getTransactionalEditingDomain().getCommandStack().execute(command);
} finally {
- sourceDiagramEditPart.getEditingDomain().removeResourceSetListener(ROLLBACK_LISTENER);
+ getTargetSession().getTransactionalEditingDomain().removeResourceSetListener(ROLLBACK_LISTENER);
}
final String diagramToCopyFormatName = representationToCopyFormat.diagrams.get(0).name;
@@ -295,6 +297,10 @@ public class MappingBasedSiriusFormatDataManagerCreateTargetSequenceDiagramTest
}
+ protected Session getTargetSession() {
+ return session;
+ }
+
@Override
protected String getPlatformRelatedFullXmiDataPath() {
return PLUGIN_PATH + getPlatformRelatedXmiDataPath();

Back to the top