diff options
| author | Laurent Redor | 2021-02-16 16:59:14 +0000 |
|---|---|---|
| committer | Laurent Redor | 2021-02-18 07:51:06 +0000 |
| commit | faf6955f115283932d2d3803b6cbc8d403853faa (patch) | |
| tree | 81f8567fa395d52d00a48a22e7c252765dbbb2a7 | |
| parent | ae497aa79179d0114c412b05e03c1ff88c8920b0 (diff) | |
| download | org.eclipse.sirius-faf6955f115283932d2d3803b6cbc8d403853faa.tar.gz org.eclipse.sirius-faf6955f115283932d2d3803b6cbc8d403853faa.tar.xz org.eclipse.sirius-faf6955f115283932d2d3803b6cbc8d403853faa.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>
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(); |
