Bug 578826: [Sirius][ClassDiagram] Papyrus must provide JUnit tests for the Graphical Drop tools
 - commplete some SemanticDropMapping
 - contribute JUnit Tests for Semantic Drops of Top Nodes
 - group all top nodes tests in the same java class and delete the concerned test classes
 - start to develop an API for SubNode JUnit Tests

Signed-off-by: Vincent Lorenzo <vincent.lorenzo@cea.fr>
Change-Id: If9a6450ed3123eec00d2856b70bfa992d2a8ab99
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/description/papyrus_class.odesign b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/description/papyrus_class.odesign
index 89d0efc..895659e 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/description/papyrus_class.odesign
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/description/papyrus_class.odesign
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <description:Group 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/description/1.1.0" xmlns:filter="http://www.eclipse.org/sirius/diagram/description/filter/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" documentation="Copyright (c) 2009, 2014, 2021-2022 Obeo, CEA LIST, Artal Technologies&#xD;&#xA;&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License 2.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA;SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA;     Obeo - initial API and implementation&#xD;&#xA;     Aurelien Didier (ARTAL) - aurelien.didier51@gmail.com - adaptation to integrate in Papyrus&#xD;&#xA;     Vincent Lorenzo (CEA LIST) - vincent.lorenzo@cea.fr  - adaptation to integrate in Papyrus" name="papyrus" version="12.0.0.2017041100">
   <ownedViewpoints name="ClassDiagram" modelFileExtension="uml">
-    <ownedRepresentations xsi:type="description_1:DiagramDescription" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Attributes%20or%20Operations'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticPackageDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Interface%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='InstanceSpecification%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='InformationItem%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='Constraint%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='Comment%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Signal%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Class%20Primitive%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Interface%20Primitive%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticClassDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='to%20Package%20%26%26%20Diagram'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticModelDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticDataTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='GraphicalEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticComponentDrop']" documentation="Representation to edit class diagrams" name="ClassDiagram" titleExpression="aql:self.name +' Class Diagram'" domainClass="uml::Package" preconditionExpression="" enablePopupBars="true">
+    <ownedRepresentations xsi:type="description_1:DiagramDescription" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Attributes%20or%20Operations'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticPackageDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='Constraint%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='Comment%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticClassDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='to%20Package%20%26%26%20Diagram'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticModelDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticDataTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='GraphicalEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticComponentDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticInterfaceDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticSignalDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticInstanceSpecificationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticInformationItemDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticPrimitiveTypeDrop']" documentation="Representation to edit class diagrams" name="ClassDiagram" titleExpression="aql:self.name +' Class Diagram'" domainClass="uml::Package" preconditionExpression="" enablePopupBars="true">
       <metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/>
       <filters xsi:type="filter:CompositeFilterDescription" name="Show Stereotypes"/>
       <filters xsi:type="filter:CompositeFilterDescription" name="Show Bendpoint"/>
@@ -346,7 +346,7 @@
               <labelBorderStyle href="environment:/viewpoint#//@labelBorderStyles/@labelBorderStyleDescriptions.2"/>
             </style>
           </subContainerMappings>
-          <subContainerMappings name="CD_ClassNestedClassifiersCompartment" semanticCandidatesExpression="aql:self" synchronizationLock="true" domainClass="uml.Class" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Class%20Primitive%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticDataTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='GraphicalEnumerationDrop']" reusedNodeMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_ClassLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_DataTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_EnumerationLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InterfaceLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_PrimitiveTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_SignalLabelNode']" childrenPresentation="List">
+          <subContainerMappings name="CD_ClassNestedClassifiersCompartment" semanticCandidatesExpression="aql:self" synchronizationLock="true" domainClass="uml.Class" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticDataTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='GraphicalEnumerationDrop']" reusedNodeMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_ClassLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_DataTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_EnumerationLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InterfaceLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_PrimitiveTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_SignalLabelNode']" childrenPresentation="List">
             <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" labelSize="9" showIcon="false" labelExpression="nested classifiers" hideLabelByDefault="true" backgroundStyle="GradientTopToBottom" foregroundColor="//@userColorsPalettes[name='CD_ColorPalette']/@entries[name='CustomBlue']">
               <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -377,7 +377,7 @@
               <labelBorderStyle href="environment:/viewpoint#//@labelBorderStyles/@labelBorderStyleDescriptions.2"/>
             </style>
           </subContainerMappings>
-          <subContainerMappings name="CD_ComponentNestedClassifiersCompartment" semanticCandidatesExpression="aql:self" synchronizationLock="true" domainClass="uml.Component" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Class%20Primitive%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticDataTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='GraphicalEnumerationDrop']" reusedNodeMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_ClassLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_DataTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_EnumerationLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InterfaceLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_PrimitiveTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_SignalLabelNode']" childrenPresentation="List">
+          <subContainerMappings name="CD_ComponentNestedClassifiersCompartment" semanticCandidatesExpression="aql:self" synchronizationLock="true" domainClass="uml.Component" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticDataTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='GraphicalEnumerationDrop']" reusedNodeMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_ClassLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_DataTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_EnumerationLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InterfaceLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_PrimitiveTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_SignalLabelNode']" childrenPresentation="List">
             <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" labelSize="9" hideLabelByDefault="true" backgroundStyle="GradientTopToBottom" foregroundColor="//@userColorsPalettes[name='CD_ColorPalette']/@entries[name='CustomBlue']">
               <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -461,7 +461,7 @@
               <labelBorderStyle href="environment:/viewpoint#//@labelBorderStyles/@labelBorderStyleDescriptions.2"/>
             </style>
           </subContainerMappings>
-          <subContainerMappings name="CD_InterfaceNestedClassifiersCompartment" semanticCandidatesExpression="aql:self" synchronizationLock="true" domainClass="uml.Interface" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Interface%20Primitive%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticDataTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='GraphicalEnumerationDrop']" reusedNodeMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_ClassLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_DataTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_EnumerationLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InterfaceLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_PrimitiveTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_SignalLabelNode']" childrenPresentation="List">
+          <subContainerMappings name="CD_InterfaceNestedClassifiersCompartment" semanticCandidatesExpression="aql:self" synchronizationLock="true" domainClass="uml.Interface" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticDataTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='GraphicalEnumerationDrop']" reusedNodeMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_ClassLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_DataTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_EnumerationLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InterfaceLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_PrimitiveTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_SignalLabelNode']" childrenPresentation="List">
             <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" labelSize="9" showIcon="false" labelExpression="nested classifiers" hideLabelByDefault="true" backgroundStyle="GradientTopToBottom" foregroundColor="//@userColorsPalettes[name='CD_ColorPalette']/@entries[name='CustomBlue']">
               <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -475,7 +475,7 @@
             <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings name="CD_Model" deletionDescription="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='PapyrusDelete']" labelDirectEdit="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Element%20Name']" semanticCandidatesExpression="feature:eAllContents" createElements="false" semanticElements="service:getSemanticElements" domainClass="uml.Model" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticClassDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='to%20Package%20%26%26%20Diagram'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticDataTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='GraphicalEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticComponentDrop']" childrenPresentation="VerticalStack">
+        <containerMappings name="CD_Model" deletionDescription="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='PapyrusDelete']" labelDirectEdit="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Element%20Name']" semanticCandidatesExpression="feature:eAllContents" createElements="false" semanticElements="service:getSemanticElements" domainClass="uml.Model" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticClassDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='to%20Package%20%26%26%20Diagram'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticDataTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='GraphicalEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticComponentDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticInterfaceDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticSignalDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticInstanceSpecificationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticInformationItemDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticConstraintDrop']" childrenPresentation="VerticalStack">
           <subContainerMappings name="CD_ModelPackagedElementsCompartment" semanticCandidatesExpression="aql:self" synchronizationLock="true" domainClass="uml.Model" reusedNodeMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Comment']/@nodeMappings[name='CD_Comment'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_Constraint'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InformationItem']" reusedContainerMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_AssociationClass'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Class'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Component'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Enumeration'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_InstanceSpecification_Node'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Interface'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Package'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Signal']">
             <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" labelSize="9" showIcon="false" labelExpression="packaged elements" hideLabelByDefault="true" backgroundStyle="GradientTopToBottom" foregroundColor="//@userColorsPalettes[name='CD_ColorPalette']/@entries[name='CustomBlue']">
               <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -491,7 +491,7 @@
             <labelBorderStyle href="environment:/viewpoint#//@labelBorderStyles/@labelBorderStyleDescriptions.0"/>
           </style>
         </containerMappings>
-        <containerMappings name="CD_Package" deletionDescription="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='PapyrusDelete']" labelDirectEdit="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Element%20Name']" semanticCandidatesExpression="feature:eAllContents" createElements="false" semanticElements="service:getSemanticElements" domainClass="uml.Package" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticPackageDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Interface%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='InstanceSpecification%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='InformationItem%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='Constraint%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='Comment%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Signal%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Class%20Primitive%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Interface%20Primitive%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticClassDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='to%20Package%20%26%26%20Diagram'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticDataTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='GraphicalEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticComponentDrop']" childrenPresentation="VerticalStack">
+        <containerMappings name="CD_Package" deletionDescription="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='PapyrusDelete']" labelDirectEdit="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Element%20Name']" semanticCandidatesExpression="feature:eAllContents" createElements="false" semanticElements="service:getSemanticElements" domainClass="uml.Package" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticPackageDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='Constraint%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='Comment%20from%20Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticClassDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='to%20Package%20%26%26%20Diagram'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticDataTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='GraphicalEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticComponentDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticInterfaceDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticSignalDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticInstanceSpecificationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticInformationItemDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticConstraintDrop']" childrenPresentation="VerticalStack">
           <subContainerMappings name="CD_PackagePackagedElementsCompartment" semanticCandidatesExpression="aql:self" synchronizationLock="true" domainClass="uml.Package" reusedNodeMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Comment']/@nodeMappings[name='CD_Comment'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_Constraint'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InformationItem']" reusedContainerMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_AssociationClass'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Class'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Component'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Enumeration'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_InstanceSpecification_Node'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Interface'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Package'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Signal']">
             <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" labelSize="9" showIcon="false" labelExpression="packaged elements" hideLabelByDefault="true" backgroundStyle="GradientTopToBottom">
               <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -509,7 +509,7 @@
             <labelBorderStyle href="environment:/viewpoint#//@labelBorderStyles/@labelBorderStyleDescriptions.0"/>
           </style>
         </containerMappings>
-        <containerMappings name="CD_PrimitiveType" deletionDescription="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='PapyrusDelete']" labelDirectEdit="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Element%20Name']" createElements="false" semanticElements="service:getSemanticElements" domainClass="uml.PrimitiveType" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Class%20Primitive%20from%20Model']" childrenPresentation="VerticalStack">
+        <containerMappings name="CD_PrimitiveType" deletionDescription="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@toolSections.0/@ownedTools[name='PapyrusDelete']" labelDirectEdit="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.2/@ownedTools[name='Element%20Name']" createElements="false" semanticElements="service:getSemanticElements" domainClass="uml.PrimitiveType" childrenPresentation="VerticalStack">
           <subContainerMappings name="CD_PrimitiveTypeAttributesCompartment" semanticCandidatesExpression="aql:self" synchronizationLock="true" domainClass="uml.PrimitiveType" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='SemanticPropertyDrop']" reusedNodeMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_PropertyLabelNode']" childrenPresentation="List">
             <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" labelSize="9" showIcon="false" labelExpression="attributes" hideLabelByDefault="true" backgroundStyle="GradientTopToBottom" foregroundColor="//@userColorsPalettes[name='CD_ColorPalette']/@entries[name='CustomBlue']">
               <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -1171,40 +1171,6 @@
               </firstModelOperations>
             </initialOperation>
           </ownedTools>
-          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="Interface from Model" forceRefresh="true" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Interface']" dragSource="PROJECT_EXPLORER">
-            <oldContainer name="oldSemanticContainer"/>
-            <newContainer name="newSemanticContainer"/>
-            <element name="element"/>
-            <newViewContainer name="newContainerView"/>
-            <initialOperation>
-              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
-                <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Interface']" containerViewExpression="aql:newContainerView"/>
-                <subModelOperations xsi:type="tool:If"/>
-              </firstModelOperations>
-            </initialOperation>
-          </ownedTools>
-          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="InstanceSpecification from Model" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_InstanceSpecification_Node']" dragSource="PROJECT_EXPLORER">
-            <oldContainer name="oldSemanticContainer"/>
-            <newContainer name="newSemanticContainer"/>
-            <element name="element"/>
-            <newViewContainer name="newContainerView"/>
-            <initialOperation>
-              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
-                <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_InstanceSpecification_Node']" containerViewExpression="aql:newContainerView"/>
-              </firstModelOperations>
-            </initialOperation>
-          </ownedTools>
-          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="InformationItem from Model" forceRefresh="true" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InformationItem']" dragSource="PROJECT_EXPLORER">
-            <oldContainer name="oldSemanticContainer"/>
-            <newContainer name="newSemanticContainer"/>
-            <element name="element"/>
-            <newViewContainer name="newContainerView"/>
-            <initialOperation>
-              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
-                <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InformationItem']" containerViewExpression="aql:newContainerView"/>
-              </firstModelOperations>
-            </initialOperation>
-          </ownedTools>
           <ownedTools xsi:type="tool_1:ContainerDropDescription" name="to Package &amp;&amp; Diagram" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Class'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Interface'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Package'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Comment']/@nodeMappings[name='CD_Comment'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_InstanceSpecification_Node'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InformationItem'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Signal']">
             <oldContainer name="oldSemanticContainer"/>
             <newContainer name="newSemanticContainer"/>
@@ -1216,39 +1182,6 @@
               </firstModelOperations>
             </initialOperation>
           </ownedTools>
-          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="Signal from Model" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Signal']" dragSource="PROJECT_EXPLORER">
-            <oldContainer name="oldSemanticContainer"/>
-            <newContainer name="newSemanticContainer"/>
-            <element name="element"/>
-            <newViewContainer name="newContainerView"/>
-            <initialOperation>
-              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
-                <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Signal']" containerViewExpression="aql:newContainerView"/>
-              </firstModelOperations>
-            </initialOperation>
-          </ownedTools>
-          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="Class Primitive from Model" precondition="aql:self.oclIsTypeOf(uml::PrimitiveType)" forceRefresh="true" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_DataType']" dragSource="PROJECT_EXPLORER">
-            <oldContainer name="oldSemanticContainer"/>
-            <newContainer name="newSemanticContainer"/>
-            <element name="element"/>
-            <newViewContainer name="newContainerView"/>
-            <initialOperation>
-              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
-                <subModelOperations xsi:type="tool_1:CreateView" containerViewExpression="aql:newContainerView"/>
-              </firstModelOperations>
-            </initialOperation>
-          </ownedTools>
-          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="Interface Primitive from Model" forceRefresh="true" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_PrimitiveType']" dragSource="PROJECT_EXPLORER">
-            <oldContainer name="oldSemanticContainer"/>
-            <newContainer name="newSemanticContainer"/>
-            <element name="element"/>
-            <newViewContainer name="newContainerView"/>
-            <initialOperation>
-              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
-                <subModelOperations xsi:type="tool_1:CreateView" containerViewExpression="aql:newContainerView"/>
-              </firstModelOperations>
-            </initialOperation>
-          </ownedTools>
           <ownedTools xsi:type="tool_1:ContainerDropDescription" name="DataType" forceRefresh="true" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_DataType']">
             <oldContainer name="oldSemanticContainer"/>
             <newContainer name="newSemanticContainer"/>
@@ -1848,7 +1781,7 @@
               </firstModelOperations>
             </initialOperation>
           </ownedTools>
-          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticComponentDrop" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Component']" dragSource="PROJECT_EXPLORER">
+          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticComponentDrop" precondition="aql:self.oclIsTypeOf(uml::Component)" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Component']" dragSource="PROJECT_EXPLORER">
             <oldContainer name="oldSemanticContainer"/>
             <newContainer name="newSemanticContainer"/>
             <element name="element"/>
@@ -1868,13 +1801,24 @@
               </firstModelOperations>
             </initialOperation>
           </ownedTools>
+          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticConstraintDrop" precondition="aql:self.oclIsTypeOf(uml::Constraint)" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_Constraint']" dragSource="PROJECT_EXPLORER">
+            <oldContainer name="oldSemanticContainer"/>
+            <newContainer name="newSemanticContainer"/>
+            <element name="element"/>
+            <newViewContainer name="newContainerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
+                <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_Constraint']" containerViewExpression="aql:newContainerView"/>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
           <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticDataTypeDrop" precondition="aql:self.oclIsTypeOf(uml::DataType)" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_DataTypeLabelNode']" dragSource="PROJECT_EXPLORER">
             <oldContainer name="oldSemanticContainer"/>
             <newContainer name="newSemanticContainer"/>
             <element name="element"/>
             <newViewContainer name="newContainerView"/>
             <initialOperation>
-              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:elementView">
+              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:newContainerView">
                 <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.oclIsKindOf(diagram::DDiagram)">
                   <subModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
                     <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_DataType']" containerViewExpression="aql:newContainerView"/>
@@ -1899,7 +1843,7 @@
             <element name="element"/>
             <newViewContainer name="newContainerView"/>
             <initialOperation>
-              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:elementView">
+              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:newContainerView">
                 <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.oclIsKindOf(diagram::DDiagram)">
                   <subModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
                     <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Enumeration']" containerViewExpression="aql:newContainerView"/>
@@ -1918,7 +1862,40 @@
               </firstModelOperations>
             </initialOperation>
           </ownedTools>
-          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticModelDrop" precondition="service:isValidContainer(newViewContainer)" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Model']" dragSource="PROJECT_EXPLORER">
+          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticInstanceSpecificationDrop" precondition="aql:self.oclIsTypeOf(uml::InstanceSpecification)" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_InstanceSpecification_Node']" dragSource="PROJECT_EXPLORER">
+            <oldContainer name="oldSemanticContainer"/>
+            <newContainer name="newSemanticContainer"/>
+            <element name="element"/>
+            <newViewContainer name="newContainerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
+                <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_InstanceSpecification_Node']" containerViewExpression="aql:newContainerView"/>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticInformationItemDrop" precondition="aql:self.oclIsTypeOf(uml::InformationItem)" forceRefresh="true" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InformationItem']" dragSource="PROJECT_EXPLORER">
+            <oldContainer name="oldSemanticContainer"/>
+            <newContainer name="newSemanticContainer"/>
+            <element name="element"/>
+            <newViewContainer name="newContainerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
+                <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InformationItem']" containerViewExpression="aql:newContainerView"/>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticInterfaceDrop" precondition="aql:self.oclIsTypeOf(uml::Interface)" forceRefresh="true" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Interface']" dragSource="PROJECT_EXPLORER">
+            <oldContainer name="oldSemanticContainer"/>
+            <newContainer name="newSemanticContainer"/>
+            <element name="element"/>
+            <newViewContainer name="newContainerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
+                <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Interface']" containerViewExpression="aql:newContainerView"/>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticModelDrop" precondition="aql:self.oclIsTypeOf(uml::Model)" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Model']" dragSource="PROJECT_EXPLORER">
             <oldContainer name="oldSemanticContainer"/>
             <newContainer name="newSemanticContainer"/>
             <element name="element"/>
@@ -1929,13 +1906,13 @@
               </firstModelOperations>
             </initialOperation>
           </ownedTools>
-          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticOperationDrop" forceRefresh="true" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_OperationLabelNode']" dragSource="PROJECT_EXPLORER">
+          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticOperationDrop" precondition="aql:self.oclIsTypeOf(uml::Operation)" forceRefresh="true" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_OperationLabelNode']" dragSource="PROJECT_EXPLORER">
             <oldContainer name="oldSemanticContainer"/>
             <newContainer name="newSemanticContainer"/>
             <element name="element"/>
             <newViewContainer name="newContainerView"/>
             <initialOperation>
-              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:elementView">
+              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:newContainerView">
                 <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.oclIsKindOf(diagram::DNodeList)">
                   <subModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
                     <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_OperationLabelNode']" containerViewExpression="aql:newContainerView"/>
@@ -1944,7 +1921,7 @@
               </firstModelOperations>
             </initialOperation>
           </ownedTools>
-          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticPackageDrop" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Package']" dragSource="PROJECT_EXPLORER">
+          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticPackageDrop" precondition="aql:self.oclIsTypeOf(uml::Package)" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Package']" dragSource="PROJECT_EXPLORER">
             <oldContainer name="oldSemanticContainer"/>
             <newContainer name="newSemanticContainer"/>
             <element name="element"/>
@@ -1955,13 +1932,13 @@
               </firstModelOperations>
             </initialOperation>
           </ownedTools>
-          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticPropertyDrop" forceRefresh="true" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_PropertyLabelNode']" dragSource="PROJECT_EXPLORER">
+          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticPropertyDrop" precondition="aql:self.oclIsTypeOf(uml::Property)" forceRefresh="true" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_PropertyLabelNode']" dragSource="PROJECT_EXPLORER">
             <oldContainer name="oldSemanticContainer"/>
             <newContainer name="newSemanticContainer"/>
             <element name="element"/>
             <newViewContainer name="newContainerView"/>
             <initialOperation>
-              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:elementView">
+              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:newContainerView">
                 <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.oclIsKindOf(diagram::DNodeList)">
                   <subModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
                     <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_PropertyLabelNode']" containerViewExpression="aql:newContainerView"/>
@@ -1976,7 +1953,7 @@
             <element name="element"/>
             <newViewContainer name="newContainerView"/>
             <initialOperation>
-              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:elementView">
+              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:newContainerView">
                 <subModelOperations xsi:type="tool:If" conditionExpression="aql:self.oclIsKindOf(diagram::DDiagram)">
                   <subModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
                     <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_PrimitiveType']" containerViewExpression="aql:newContainerView"/>
@@ -1995,6 +1972,17 @@
               </firstModelOperations>
             </initialOperation>
           </ownedTools>
+          <ownedTools xsi:type="tool_1:ContainerDropDescription" name="SemanticSignalDrop" precondition="aql:self.oclIsTypeOf(uml::Signal)" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Signal']" dragSource="PROJECT_EXPLORER">
+            <oldContainer name="oldSemanticContainer"/>
+            <newContainer name="newSemanticContainer"/>
+            <element name="element"/>
+            <newViewContainer name="newContainerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool:ChangeContext" browseExpression="var:element">
+                <subModelOperations xsi:type="tool_1:CreateView" mapping="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Signal']" containerViewExpression="aql:newContainerView"/>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
         </toolSections>
         <toolSections name="GraphicalDrop">
           <ownedTools xsi:type="tool_1:ContainerDropDescription" name="GraphicalEnumerationDrop" forceRefresh="true" mappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Enumeration'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_EnumerationLabelNode']">
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/src/org/eclipse/papyrus/uml/sirius/clazz/diagram/internal/constants/SemanticDropToolsIds.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/src/org/eclipse/papyrus/uml/sirius/clazz/diagram/internal/constants/SemanticDropToolsIds.java
index c4695e3..96b336b 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/src/org/eclipse/papyrus/uml/sirius/clazz/diagram/internal/constants/SemanticDropToolsIds.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/src/org/eclipse/papyrus/uml/sirius/clazz/diagram/internal/constants/SemanticDropToolsIds.java
@@ -22,22 +22,33 @@
 		// to prevent instantiation
 	}
 
-	public static final String DROP_CLASS_TOOL = "SemanticClassDrop"; //$NON-NLS-1$
+	public static final String DROP__CLASS__TOOL = "SemanticClassDrop"; //$NON-NLS-1$
 
-	public static final String DROP_COMPONENT_TOOL = "SemanticComponentDrop"; //$NON-NLS-1$
+	public static final String DROP__COMPONENT__TOOL = "SemanticComponentDrop"; //$NON-NLS-1$
 
-	public static final String DROP_DATATYPE_TOOL = "SemanticDataTypeDrop"; //$NON-NLS-1$
+	public static final String DROP__CONSTRAINT__TOOL = "SemanticConstraintDrop"; //$NON-NLS-1$
 
-	public static final String DROP_ENUMERATION_TOOL = "SemanticEnumerationDrop"; //$NON-NLS-1$
+	public static final String DROP__DATATYPE__TOOL = "SemanticDataTypeDrop"; //$NON-NLS-1$
 
-	public static final String DROP_MODEL_TOOL = "SemanticModelDrop"; //$NON-NLS-1$
+	public static final String DROP__ENUMERATION__TOOL = "SemanticEnumerationDrop"; //$NON-NLS-1$
 
-	public static final String DROP_OPERATION_TOOL = "SemanticOperationDrop"; //$NON-NLS-1$
+	public static final String DROP__INFORMATION_ITEM__TOOL = "SemanticInformationItemDrop"; //$NON-NLS-1$
 
-	public static final String DROP_PACKAGE_TOOL = "SemanticPackageDrop"; //$NON-NLS-1$
+	public static final String DROP__INSTANCE_SPECIFICATION__TOOL = "SemanticInstanceSpecificationDrop"; //$NON-NLS-1$
 
-	public static final String DROP_PROPERTY_TOOL = "SemanticPropertyDrop"; //$NON-NLS-1$
+	public static final String DROP__INTERFACE__TOOL = "SemanticInterfaceDrop"; //$NON-NLS-1$
 
-	public static final String DROP_PRIMITIVETYPE_TOOL = "SemanticPrimitiveTypeDrop"; //$NON-NLS-1$
+	public static final String DROP__MODEL__TOOL = "SemanticModelDrop"; //$NON-NLS-1$
+
+	public static final String DROP__OPERATION__TOOL = "SemanticOperationDrop"; //$NON-NLS-1$
+
+	public static final String DROP__PACKAGE__TOOL = "SemanticPackageDrop"; //$NON-NLS-1$
+
+	public static final String DROP__PROPERTY__TOOL = "SemanticPropertyDrop"; //$NON-NLS-1$
+
+	public static final String DROP__PRIMITIVETYPE__TOOL = "SemanticPrimitiveTypeDrop"; //$NON-NLS-1$
+
+	public static final String DROP__SIGNAL__TOOL = "SemanticSignalDrop"; //$NON-NLS-1$
+
 
 }
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/src/org/eclipse/papyrus/uml/sirius/clazz/diagram/services/ClassDiagramServices.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/src/org/eclipse/papyrus/uml/sirius/clazz/diagram/services/ClassDiagramServices.java
index 0925cb3..b05e4cb 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/src/org/eclipse/papyrus/uml/sirius/clazz/diagram/services/ClassDiagramServices.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/src/org/eclipse/papyrus/uml/sirius/clazz/diagram/services/ClassDiagramServices.java
@@ -60,7 +60,6 @@
 import org.eclipse.sirius.diagram.EdgeTarget;
 import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListSpec;
-import org.eclipse.sirius.diagram.model.business.internal.spec.DSemanticDiagramSpec;
 import org.eclipse.sirius.viewpoint.DSemanticDecorator;
 import org.eclipse.sirius.viewpoint.FontFormat;
 import org.eclipse.swt.widgets.Display;
@@ -358,24 +357,6 @@
 	}
 
 	/**
-	 * Check if the container is valid or not
-	 * 
-	 * @param context
-	 *            the current context
-	 * @param newContainerView
-	 *            the new container view
-	 * @return true if the container can contain the element to create
-	 */
-	public boolean isValidContainer(EObject context, EObject newContainerView) {
-		if (newContainerView instanceof DSemanticDiagramSpec) {
-			return context.eContainer().equals(((DSemanticDiagramSpec) newContainerView).getTarget());
-		} else if (newContainerView instanceof DNodeContainerSpec) {
-			return context.eContainer().equals(((DNodeContainerSpec) newContainerView).getTarget());
-		}
-		return false;
-	}
-
-	/**
 	 * Create a new Dependency Link.
 	 * 
 	 * @param sourceView
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/delete/nodes/durationObservation/TopNode_DurationObservation_DeleteSemanticTest.di b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/delete/nodes/durationObservation/TopNode_DurationObservation_DeleteSemanticTest.di
new file mode 100755
index 0000000..bf9abab
--- /dev/null
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/delete/nodes/durationObservation/TopNode_DurationObservation_DeleteSemanticTest.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/subNode/dropIntoModel.aird b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/subNode/dropIntoModel.aird
index fd68276..656a401 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/subNode/dropIntoModel.aird
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/subNode/dropIntoModel.aird
@@ -1,6 +1,6 @@
 <?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/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:notation="http://www.eclipse.org/gmf/runtime/1.0.3/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" 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/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="_2XmYAJ76EeyF49nN-xvxfg" selectedViews="_2YmdkJ76EeyF49nN-xvxfg _2ZQk4J76EeyF49nN-xvxfg _2arhMJ76EeyF49nN-xvxfg" version="15.0.0.202201261500">
+  <viewpoint:DAnalysis uid="_2XmYAJ76EeyF49nN-xvxfg" selectedViews="_dCvwQK6rEeyceYKOdTWcvQ _dCTrYK6rEeyceYKOdTWcvQ _dCl_QK6rEeyceYKOdTWcvQ" version="15.0.0.202201261500">
     <semanticResources>dropIntoModel.uml</semanticResources>
     <semanticResources>pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml</semanticResources>
     <semanticResources>pathmap://UML_PROFILES/Ecore.profile.uml</semanticResources>
@@ -21,6 +21,15 @@
     <ownedViews xmi:type="viewpoint:DView" uid="_2arhMJ76EeyF49nN-xvxfg">
       <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.papyrus.uml.sirius.statemachine.diagram/description/papyrus_statemachine.odesign#//@ownedViewpoints[name='StateMachineDiagram']"/>
     </ownedViews>
+    <ownedViews xmi:type="viewpoint:DView" uid="_dCTrYK6rEeyceYKOdTWcvQ">
+      <viewpoint xmi:type="description:Viewpoint" href="platform:/resource/org.eclipse.papyrus.uml.sirius.clazz.diagram/description/papyrus_class.odesign#//@ownedViewpoints[name='ClassDiagram']"/>
+    </ownedViews>
+    <ownedViews xmi:type="viewpoint:DView" uid="_dCl_QK6rEeyceYKOdTWcvQ">
+      <viewpoint xmi:type="description:Viewpoint" href="platform:/resource/org.eclipse.papyrus.uml.sirius.sequence.diagram/description/papyrus_sequence.odesign#//@ownedViewpoints[name='SequenceDiagram']"/>
+    </ownedViews>
+    <ownedViews xmi:type="viewpoint:DView" uid="_dCvwQK6rEeyceYKOdTWcvQ">
+      <viewpoint xmi:type="description:Viewpoint" href="platform:/resource/org.eclipse.papyrus.uml.sirius.statemachine.diagram/description/papyrus_statemachine.odesign#//@ownedViewpoints[name='StateMachineDiagram']"/>
+    </ownedViews>
   </viewpoint:DAnalysis>
   <diagram:DSemanticDiagram uid="_2bMekJ76EeyF49nN-xvxfg">
     <eAnnotations xmi:type="description:DAnnotation" uid="_2czoIp76EeyF49nN-xvxfg" source="Papyrus-SiriusDiagram">
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/subNode/dropIntoModel.uml b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/subNode/dropIntoModel.uml
index e544c1d..472e2b9 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/subNode/dropIntoModel.uml
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/subNode/dropIntoModel.uml
@@ -5,5 +5,6 @@
   </packageImport>
   <packagedElement xmi:type="uml:Model" xmi:id="_39QuQJ76EeyF49nN-xvxfg" name="Model">
     <packagedElement xmi:type="uml:Package" xmi:id="_6t1_gJ76EeyF49nN-xvxfg" name="PackageToDrop"/>
+    <packagedElement xmi:type="uml:Class" xmi:id="_gVbpAK6rEeyceYKOdTWcvQ" name="ClassToDrop"/>
   </packagedElement>
 </uml:Model>
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/subNode/dropIntoPackage.uml b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/subNode/dropIntoPackage.uml
index cc84145..6220509 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/subNode/dropIntoPackage.uml
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/subNode/dropIntoPackage.uml
@@ -5,5 +5,6 @@
   </packageImport>
   <packagedElement xmi:type="uml:Package" xmi:id="_Ltk40J-EEeyF49nN-xvxfg" name="Package">
     <packagedElement xmi:type="uml:Class" xmi:id="_OgxZMJ-EEeyF49nN-xvxfg" name="ClassToDrop"/>
+    <packagedElement xmi:type="uml:Package" xmi:id="_vbLqoK9wEeygIIt21k9Vcw" name="PackageToDrop"/>
   </packagedElement>
 </uml:Model>
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/topNode/TopNode_DropTest.uml b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/topNode/TopNode_DropTest.uml
index 9faa63f..b46cb28 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/topNode/TopNode_DropTest.uml
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/resources/drop/topNode/TopNode_DropTest.uml
@@ -13,6 +13,4 @@
   <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_Rs5D4B1DEeyMqqMrfth9Gw" name="PrimitiveTypeToDrop"/>
   <packagedElement xmi:type="uml:Model" xmi:id="_VYkEYB1DEeyMqqMrfth9Gw" name="ModelToDrop"/>
   <packagedElement xmi:type="uml:InformationItem" xmi:id="_erkg0B1DEeyMqqMrfth9Gw" name="InformationItemToDrop"/>
-  <packagedElement xmi:type="uml:DurationObservation" xmi:id="_xmmncB1DEeyMqqMrfth9Gw" name="DurationObservationToDrop"/>
-  <packagedElement xmi:type="uml:TimeObservation" xmi:id="_3RUHgB1DEeyMqqMrfth9Gw" name="TimeObservationToDrop"/>
 </uml:Model>
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/checkers/internal/api/SemanticDropChecker.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/checkers/internal/api/SemanticDropChecker.java
new file mode 100755
index 0000000..aa7ace1
--- /dev/null
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/checkers/internal/api/SemanticDropChecker.java
@@ -0,0 +1,71 @@
+/*****************************************************************************
+ * Copyright (c) 2022 CEA LIST
+ *
+ * All rights reserved. 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:
+ *  Vincent Lorenzo (CEA LIST) <vincent.lorenzo@cea.fr> - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.internal.api;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.sirius.viewpoint.DRepresentationElement;
+import org.junit.Assert;
+
+/**
+ * 
+ */
+public class SemanticDropChecker implements ISemanticNodeChecker {
+
+	private final EObject droppedEObject;
+	
+	private final EObject semanticContainer;
+
+	public SemanticDropChecker(final EObject droppedEObject) {
+		this.droppedEObject = droppedEObject;
+		this.semanticContainer = this.droppedEObject.eContainer();
+	}
+
+	/**
+	 * @see org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.internal.api.ISemanticNodeChecker#validateNode(org.eclipse.sirius.viewpoint.DRepresentationElement)
+	 *
+	 * @param createdElementRepresentation
+	 */
+
+	@Override
+	public void validateNode(final DRepresentationElement createdElementRepresentation) {
+		final List<EObject> semanticElements = createdElementRepresentation.getSemanticElements();
+		Assert.assertEquals("The created element representation must have 1 associated semantic element", 1, semanticElements.size()); //$NON-NLS-1$
+
+		final EObject element = semanticElements.get(0);
+		Assert.assertTrue("The dropped element is not associated to the created view.", element==this.droppedEObject); //$NON-NLS-1$
+		Assert.assertTrue("The semantic owner of the dropped element changed.", this.semanticContainer==element.eContainer()); //$NON-NLS-1$
+	}
+
+	/**
+	 * @see org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.internal.api.ISemanticNodeChecker#validateAfterUndo()
+	 *
+	 */
+	@Override
+	public void validateAfterUndo() {
+		// nothing to do
+	}
+
+	/**
+	 * @see org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.internal.api.ISemanticNodeChecker#validateAfterRedo()
+	 *
+	 */
+
+	@Override
+	public void validateAfterRedo() {
+		// nothing to do
+	}
+
+}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/AbstractSemanticDropSubNodeTests.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/AbstractSemanticDropSubNodeTests.java
index 0354de3..c67afb3 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/AbstractSemanticDropSubNodeTests.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/AbstractSemanticDropSubNodeTests.java
@@ -56,7 +56,8 @@
 	public void setUp() {
 		this.root = this.fixture.getModel();
 		this.semanticOwner = getSemanticOwner();
-		Assert.assertEquals(1, semanticOwner.getOwnedElements().size());
+		// Assert.assertEquals(1, semanticOwner.getOwnedElements().size()); //depends on the initial model
+		// TODO : to be upddated later
 	}
 
 	protected abstract T getSemanticOwner();
@@ -72,7 +73,7 @@
 	 * @return
 	 *         the created NodeListElement
 	 */
-	protected final DDiagramElement dropNodeInDNodeContainer(final String compartmentMappingType, final String dropToolId, final String expectedMappingType,final Element elementToBeDropped) {
+	protected final DDiagramElement dropNodeInDNodeContainer(final String compartmentMappingType, final String dropToolId, final String expectedMappingType, final Element elementToBeDropped) {
 		final Diagram diagram = getClassDiagram();
 		Assert.assertEquals("The root model must have only one node element before dropping the sub node", 1, diagram.getChildren().size()); //$NON-NLS-1$
 		final Object firstView = diagram.getChildren().get(0);
@@ -95,15 +96,15 @@
 
 		Assert.assertEquals("The diagram children size does not change on adding a sub node", 1, diagram.getChildren().size()); //$NON-NLS-1$
 		Assert.assertEquals(1, subNodeContainer.getElements().size());
-	
-		Collection<DDiagramElement> subElements= subNodeContainer.getElements();
+
+		Collection<DDiagramElement> subElements = subNodeContainer.getElements();
 		Assert.assertEquals(1, subElements.size());
 		DDiagramElement createdElementRepresentation = subNodeContainer.getElements().get(0);
 
 		Assert.assertEquals("The mapping is not the expected one", expectedMappingType, createdElementRepresentation.getMapping().getName()); //$NON-NLS-1$
 		Assert.assertEquals("The created element representation must have 1 associated semantic element", 1, createdElementRepresentation.getSemanticElements().size()); //$NON-NLS-1$
 		final EObject createdSemanticElement = createdElementRepresentation.getSemanticElements().get(0);
-		Assert.assertEquals(1, this.semanticOwner.getOwnedElements().size());
+		Assert.assertEquals(2, this.semanticOwner.getOwnedElements().size());
 		Assert.assertEquals(createdSemanticElement, this.semanticOwner.getOwnedElements().get(0));
 
 		// undo
@@ -117,7 +118,7 @@
 		Assert.assertEquals(1, subNodeContainer.getElements().size());
 		return (DDiagramElement) subNodeContainer.getElements().get(0);
 	}
-	
+
 	/**
 	 * 
 	 * @return
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/AbstractSubNodeSemanticDropTests.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/AbstractSubNodeSemanticDropTests.java
new file mode 100755
index 0000000..d31ee9f
--- /dev/null
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/AbstractSubNodeSemanticDropTests.java
@@ -0,0 +1,23 @@
+/*****************************************************************************
+ * Copyright (c) 2022 CEA LIST
+ *
+ * All rights reserved. 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:
+ *  Vincent Lorenzo (CEA LIST) <vincent.lorenzo@cea.fr> - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.subNodes;
+
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes.AbstractTopNodeDropTests;
+
+/**
+ * 
+ */
+public abstract class AbstractSubNodeSemanticDropTests extends AbstractTopNodeDropTests{
+
+}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SemanticDropIntoModelTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SemanticDropIntoModelTest.java
index 75b773d..4a2beca 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SemanticDropIntoModelTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SemanticDropIntoModelTest.java
@@ -49,7 +49,7 @@
 	@ActiveDiagram(DIAGRAM_NAME)
 	public void dropPackageIntoModel() {
 		final NamedElement toDrop = getSemanticOwner().getMember("PackageToDrop"); //$NON-NLS-1$
-		final DDiagramElement createdElement = dropNodeInDNodeContainer(MappingTypes.MODEL_NODE_PACKAGEDELEMENTS_COMPARTMENTS_TYPE, SemanticDropToolsIds.DROP_PACKAGE_TOOL, MappingTypes.PACKAGE_NODE_TYPE, toDrop);
+		final DDiagramElement createdElement = dropNodeInDNodeContainer(MappingTypes.MODEL_NODE_PACKAGEDELEMENTS_COMPARTMENTS_TYPE, SemanticDropToolsIds.DROP__PACKAGE__TOOL, MappingTypes.PACKAGE_NODE_TYPE, toDrop);
 		final EObject semantic = createdElement.getSemanticElements().get(0);
 		Assert.assertEquals("The dropped element is not the expected one", toDrop, semantic); //$NON-NLS-1$
 	}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SemanticDropIntoModel_2_Test.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SemanticDropIntoModel_2_Test.java
new file mode 100755
index 0000000..308d249
--- /dev/null
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SemanticDropIntoModel_2_Test.java
@@ -0,0 +1,120 @@
+/*****************************************************************************
+ * Copyright (c) 2022 CEA LIST
+ *
+ * All rights reserved. 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:
+ *  Vincent Lorenzo (CEA LIST) <vincent.lorenzo@cea.fr> - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.subNodes;
+
+import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.siriusdiag.representation.SiriusDiagramConstants;
+import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.uml.sirius.clazz.diagram.internal.constants.MappingTypes;
+import org.eclipse.papyrus.uml.sirius.clazz.diagram.internal.constants.SemanticDropToolsIds;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_ClassCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_PackageCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.internal.api.SemanticDropChecker;
+import org.eclipse.sirius.diagram.DDiagramElement;
+import org.eclipse.sirius.diagram.DNodeContainer;
+import org.eclipse.sirius.diagram.DSemanticDiagram;
+import org.eclipse.sirius.diagram.DragAndDropTarget;
+import org.eclipse.sirius.viewpoint.description.DAnnotation;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.NamedElement;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * This class tests the semantic drop into a CD_Package
+ */
+@PluginResource("resources/drop/subNode/dropIntoModel.di")
+public class SemanticDropIntoModel_2_Test extends AbstractSubNodeSemanticDropTests {
+
+	private static final String DIAGRAM_NAME = "ClassDiagram"; //$NON-NLS-1$
+
+	private static final String SEMANTIC_OWNER_NAME = "Model";//$NON-NLS-1$
+
+	/**
+	 * @see org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.subNodes.AbstractSemanticDropSubNodeTests#getSemanticOwner()
+	 *
+	 * @return
+	 */
+
+	// @Override
+	protected Model getSemanticOwner() {
+		return (org.eclipse.uml2.uml.Model) this.root.getMember(SEMANTIC_OWNER_NAME);
+	}
+
+	@Test
+	@ActiveDiagram(DIAGRAM_NAME)
+	public void dropPackageIntoModel() {
+		final NamedElement toDrop = getSemanticOwner().getMember("PackageToDrop"); //$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__PACKAGE__TOOL, new CD_PackageCreationChecker(diagram, getTopNodeGraphicalContainer()), new SemanticDropChecker(toDrop), toDrop);
+	}
+
+	@Test
+	@ActiveDiagram(DIAGRAM_NAME)
+	public void dropClassIntoModel() {
+		final NamedElement toDrop = getSemanticOwner().getMember("ClassToDrop"); //$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__CLASS__TOOL, new CD_ClassCreationChecker(diagram, getTopNodeGraphicalContainer()), new SemanticDropChecker(toDrop), toDrop);
+	}
+
+	/**
+	 * @return
+	 * 
+	 */
+	protected DragAndDropTarget getTopNodeGraphicalContainer() {
+		final Diagram diagram = getClassDiagram();
+		Assert.assertEquals("The root model must have only one node element before dropping the sub node", 1, diagram.getChildren().size()); //$NON-NLS-1$
+		final Object firstView = diagram.getChildren().get(0);
+
+		Assert.assertTrue(((View) firstView).getElement() instanceof DNodeContainer);
+		final DNodeContainer classNode = (DNodeContainer) ((View) firstView).getElement();
+		// only one semantic element must be associated to the classNodeContainer
+		Assert.assertEquals(1, classNode.getSemanticElements().size());
+		Assert.assertEquals(getSemanticOwner(), classNode.getSemanticElements().get(0));
+		for (final DDiagramElement diagramElement : classNode.getOwnedDiagramElements()) {
+			if (diagramElement instanceof DragAndDropTarget && MappingTypes.MODEL_NODE_PACKAGEDELEMENTS_COMPARTMENTS_TYPE.equals(diagramElement.getMapping().getName())) {
+				return (DragAndDropTarget) diagramElement;
+			}
+		}
+		return classNode;
+	}
+
+	protected DragAndDropTarget getRealGraphicalContainer() {
+		return null;// TODO : not yet used
+	}
+
+
+	/**
+	 * 
+	 * @return
+	 *         the active Sirius Class Diagram
+	 */
+	protected final Diagram getClassDiagram() {
+		final DiagramEditPart diagramEditpart = fixture.getActiveDiagram();
+		Assert.assertNotNull("The diagram edit part has not been found", diagramEditpart); //$NON-NLS-1$
+		final Diagram diagram = diagramEditpart.getDiagramView();
+
+		Assert.assertTrue(diagram.getElement() instanceof DSemanticDiagram);
+
+		// check diagram type
+		final DSemanticDiagram ddiagram = (DSemanticDiagram) diagram.getElement();
+		DAnnotation dAnnotation = ddiagram.getDAnnotation(SiriusDiagramConstants.PAPYRUS_SIRIUS_DIAGRAM_IMPLEMENTATION_DANNOTATION_SOURCE);
+		String detail = dAnnotation.getDetails().get(SiriusDiagramConstants.PAPYRUS_SIRIUS_DIAGRAM_IMPLEMENTATION_DANNOTATION_KEY);
+		Assert.assertEquals("org.eclipse.papyrus.infra.siriusdiag.class", detail); // TODO : create a constant for this field when the code will be refactored
+
+		return diagram;
+	}
+
+}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SemanticDropIntoPackageTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SemanticDropIntoPackageTest.java
index 451451a..c5ff6e8 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SemanticDropIntoPackageTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SemanticDropIntoPackageTest.java
@@ -48,7 +48,7 @@
 	@ActiveDiagram(DIAGRAM_NAME)
 	public void dropClassIntoPackage() {
 		final NamedElement toDrop = getSemanticOwner().getMember("ClassToDrop"); //$NON-NLS-1$
-		final DDiagramElement createdElement = dropNodeInDNodeContainer(MappingTypes.PACKAGE_NODE_PACKAGEDELEMENTS_COMPARTMENTS_TYPE, SemanticDropToolsIds.DROP_CLASS_TOOL, MappingTypes.CLASS_NODE_TYPE, toDrop);
+		final DDiagramElement createdElement = dropNodeInDNodeContainer(MappingTypes.PACKAGE_NODE_PACKAGEDELEMENTS_COMPARTMENTS_TYPE, SemanticDropToolsIds.DROP__CLASS__TOOL, MappingTypes.CLASS_NODE_TYPE, toDrop);
 		final EObject semantic = createdElement.getSemanticElements().get(0);
 		Assert.assertEquals("The dropped element is not the expected one", toDrop, semantic); //$NON-NLS-1$
 	}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_OperationToClass_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_OperationToClass_DropTest.java
index a81f2ef..a1fbb2a 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_OperationToClass_DropTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_OperationToClass_DropTest.java
@@ -26,9 +26,9 @@
 import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListElementSpec;
 import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListSpec;
+import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
-import org.eclipse.uml2.uml.Class;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
@@ -61,7 +61,7 @@
 		DNodeListSpec operationContainer = (DNodeListSpec) classRepresentation.getOwnedDiagramElements().get(0);
 		NamedElement elementToBeDropped = ((Class) classRepresentation.getTarget()).getOwnedOperations().get(0);
 		DDiagram diagramRepresentation = (DDiagram) diagram.getElement();
-		fixture.applyContainerDropDescriptionTool(diagramRepresentation, SemanticDropToolsIds.DROP_OPERATION_TOOL, operationContainer, elementToBeDropped);
+		fixture.applyContainerDropDescriptionTool(diagramRepresentation, SemanticDropToolsIds.DROP__OPERATION__TOOL, operationContainer, elementToBeDropped);
 		fixture.flushDisplayEvents();
 
 		classElement = diagram.getChildren().get(0);
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_PropertyToClass_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_PropertyToClass_DropTest.java
index b0392a3..90ba541 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_PropertyToClass_DropTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_PropertyToClass_DropTest.java
@@ -26,9 +26,9 @@
 import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListElementSpec;
 import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListSpec;
+import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
-import org.eclipse.uml2.uml.Class;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
@@ -61,7 +61,7 @@
 		DNodeListSpec propertyContainer = (DNodeListSpec) classRepresentation.getOwnedDiagramElements().get(1);
 		NamedElement elementToBeDropped = ((Class) classRepresentation.getTarget()).getOwnedAttributes().get(0);
 		DDiagram diagramRepresentation = (DDiagram) diagram.getElement();
-		fixture.applyContainerDropDescriptionTool(diagramRepresentation, SemanticDropToolsIds.DROP_PROPERTY_TOOL, propertyContainer, elementToBeDropped);
+		fixture.applyContainerDropDescriptionTool(diagramRepresentation, SemanticDropToolsIds.DROP__PROPERTY__TOOL, propertyContainer, elementToBeDropped);
 		fixture.flushDisplayEvents();
 
 		classElement = diagram.getChildren().get(0);
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/AbstractTopNodeDropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/AbstractTopNodeDropTest.java
deleted file mode 100755
index 9501cab..0000000
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/AbstractTopNodeDropTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2022 CEA LIST
- *
- * All rights reserved. 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:
- *  Vincent Lorenzo (CEA LIST) <vincent.lorenzo@cea.fr> - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
-
-import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DDiagramElement;
-import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.sirius.diagram.DNodeList;
-import org.eclipse.uml2.uml.Element;
-import org.eclipse.uml2.uml.Package;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Rule;
-
-/**
- * Abstract Class for Drop Top Node tests
- */
-public abstract class AbstractTopNodeDropTest {
-
-	/**
-	 * this fixture is used to access to Papyrus environment (editor/diagram/commandstack/editingdomain/...)
-	 */
-	@Rule
-	public final SiriusDiagramEditorFixture fixture = new SiriusDiagramEditorFixture();
-
-	/**
-	 * The root of the model
-	 */
-	protected Package root;
-
-	/**
-	 * Init the test field
-	 */
-	@Before
-	public void setUp() {
-		this.root = (Package) this.fixture.getModel();
-		Assert.assertNotNull(this.root);
-	}
-
-	/**
-	 * 
-	 * @param elementToBeDropped
-	 *            the element to drop
-	 * @param dropToolId
-	 *            the id of the drop tool to use
-	 * @param elementMappingType
-	 *            the expected mapping type of the created view
-	 */
-	protected void dropDNodeListElement(final Element elementToBeDropped, final String dropToolId, final String elementMappingType) {
-		final DiagramEditPart diagramEditpart = fixture.getActiveDiagram();
-		final Diagram diagram = diagramEditpart.getDiagramView();
-		Assert.assertEquals("The diagram must not yet have children.", 0, diagram.getChildren().size()); //$NON-NLS-1$
-
-		final DDiagram diagramRepresentation = (DDiagram) diagram.getElement();
-		Assert.assertEquals("The diagram representation must not yet have children.", 0, diagramRepresentation.getDiagramElements().size());//$NON-NLS-1$
-		fixture.applyContainerDropDescriptionTool(diagramRepresentation, dropToolId, diagramRepresentation, elementToBeDropped);
-		fixture.flushDisplayEvents();
-
-		Assert.assertEquals("The diagram must have one child after the Drop action.", 1, diagram.getChildren().size()); //$NON-NLS-1$
-		Assert.assertEquals("The diagram representation must have one child after the Drop action.", 1, diagramRepresentation.getOwnedRepresentationElements().size());//$NON-NLS-1$
-		final DDiagramElement elementRepresentation = diagramRepresentation.getDiagramElements().get(0);
-		Assert.assertEquals("The mapping type of the created representation is not the expected one.", elementMappingType, elementRepresentation.getMapping().getName());//$NON-NLS-1$
-		Assert.assertTrue("The created sirus node must be a DNodeList", elementRepresentation instanceof DNodeList);//$NON-NLS-1$
-		Assert.assertEquals("Only one semantic element must be associated to the representation.", 1, ((DNodeList) elementRepresentation).getSemanticElements().size());//$NON-NLS-1$
-		Assert.assertTrue("The semantic element associated to the view must be the dropped element.", elementToBeDropped == ((DNodeList) elementRepresentation).getSemanticElements().get(0));//$NON-NLS-1$
-
-		// undo
-		fixture.getEditingDomain().getCommandStack().undo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram must contain any children after undoig the Drop action", 0, diagram.getChildren().size()); //$NON-NLS-1$
-		Assert.assertEquals("The diagram representation must contain any children after undoig the Drop action", 0, diagramRepresentation.getDiagramElements().size()); //$NON-NLS-1$
-
-		// redo
-		fixture.getEditingDomain().getCommandStack().redo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram must have one child after redoing of the Drop action.", 1, diagram.getChildren().size()); //$NON-NLS-1$
-		Assert.assertEquals("The diagram representation must have one child after redoing of the Drop action.", 1, diagramRepresentation.getOwnedDiagramElements().size());//$NON-NLS-1$
-	}
-	
-	/**
-	 * 
-	 * @param elementToBeDropped
-	 *            the element to drop
-	 * @param dropToolId
-	 *            the id of the drop tool to use
-	 * @param elementMappingType
-	 *            the expected mapping type of the created view
-	 */
-	protected void dropDNodeContainer(final Element elementToBeDropped, final String dropToolId, final String elementMappingType) {
-		final DiagramEditPart diagramEditpart = fixture.getActiveDiagram();
-		final Diagram diagram = diagramEditpart.getDiagramView();
-		Assert.assertEquals("The diagram must not yet have children.", 0, diagram.getChildren().size()); //$NON-NLS-1$
-
-		final DDiagram diagramRepresentation = (DDiagram) diagram.getElement();
-		Assert.assertEquals("The diagram representation must not yet have children.", 0, diagramRepresentation.getDiagramElements().size());//$NON-NLS-1$
-		fixture.applyContainerDropDescriptionTool(diagramRepresentation, dropToolId, diagramRepresentation, elementToBeDropped);
-		fixture.flushDisplayEvents();
-
-		Assert.assertEquals("The diagram must have one child after the Drop action.", 1, diagram.getChildren().size()); //$NON-NLS-1$
-		Assert.assertEquals("The diagram representation must have one child after the Drop action.", 1, diagramRepresentation.getOwnedRepresentationElements().size());//$NON-NLS-1$
-		final DDiagramElement elementRepresentation = diagramRepresentation.getDiagramElements().get(0);
-		Assert.assertEquals("The mapping type of the created representation is not the expected one.", elementMappingType, elementRepresentation.getMapping().getName());//$NON-NLS-1$
-		Assert.assertTrue("The created sirus node must be a DNodeContainer", elementRepresentation instanceof DNodeContainer);//$NON-NLS-1$
-		Assert.assertEquals("Only one semantic element must be associated to the representation.", 1, ((DNodeContainer) elementRepresentation).getSemanticElements().size());//$NON-NLS-1$
-		Assert.assertTrue("The semantic element associated to the view must be the dropped element.", elementToBeDropped == ((DNodeContainer) elementRepresentation).getSemanticElements().get(0));//$NON-NLS-1$
-
-		// undo
-		fixture.getEditingDomain().getCommandStack().undo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram must contain any children after undoig the Drop action", 0, diagram.getChildren().size()); //$NON-NLS-1$
-		Assert.assertEquals("The diagram representation must contain any children after undoig the Drop action", 0, diagramRepresentation.getDiagramElements().size()); //$NON-NLS-1$
-
-		// redo
-		fixture.getEditingDomain().getCommandStack().redo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram must have one child after redoing of the Drop action.", 1, diagram.getChildren().size()); //$NON-NLS-1$
-		Assert.assertEquals("The diagram representation must have one child after redoing of the Drop action.", 1, diagramRepresentation.getOwnedDiagramElements().size());//$NON-NLS-1$
-	}
-
-	/**
-	 * Release resources
-	 */
-	@After
-	public void tearDown() {
-		this.root = null;
-	}
-}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/AbstractTopNodeDropTests.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/AbstractTopNodeDropTests.java
new file mode 100755
index 0000000..96c22ca
--- /dev/null
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/AbstractTopNodeDropTests.java
@@ -0,0 +1,120 @@
+/*****************************************************************************
+ * Copyright (c) 2022 CEA LIST
+ *
+ * All rights reserved. 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:
+ *  Vincent Lorenzo (CEA LIST) <vincent.lorenzo@cea.fr> - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.internal.api.IGraphicalNodeChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.internal.api.ISemanticNodeChecker;
+import org.eclipse.sirius.diagram.DDiagram;
+import org.eclipse.sirius.diagram.DNodeContainer;
+import org.eclipse.sirius.diagram.DSemanticDiagram;
+import org.eclipse.sirius.diagram.DragAndDropTarget;
+import org.eclipse.sirius.viewpoint.DRepresentationElement;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+
+/**
+ * Abstract Class for Drop Top Node tests
+ */
+public abstract class AbstractTopNodeDropTests {
+
+	/**
+	 * this fixture is used to access to Papyrus environment (editor/diagram/commandstack/editingdomain/...)
+	 */
+	@Rule
+	public final SiriusDiagramEditorFixture fixture = new SiriusDiagramEditorFixture();
+
+	/**
+	 * The root of the model
+	 */
+	protected Package root;
+
+	protected Diagram diagram;
+
+	protected DDiagram diagramRepresentation;
+
+	/**
+	 * Init the test field
+	 */
+	@Before
+	public void setUp() {
+		this.root = (Package) this.fixture.getModel();
+		Assert.assertNotNull(this.root);
+		final DiagramEditPart diagramEditpart = fixture.getActiveDiagram();
+		diagram = diagramEditpart.getDiagramView();
+
+		diagramRepresentation = (DDiagram) diagram.getElement();
+	}
+
+	/**
+	 * 
+	 * @param dropToolId
+	 *            the id of the drop tool to use
+	 * @param elementMappingType
+	 *            the expected mapping type of the created view
+	 * @param elementToBeDropped
+	 *            the element to drop
+	 */
+	protected void dropNode(final String dropToolId, final IGraphicalNodeChecker graphicalChecker, final ISemanticNodeChecker semanticChecker, final Element elementToBeDropped) {
+		DragAndDropTarget dropTarget = getTopNodeGraphicalContainer();
+		Assert.assertNotNull(dropTarget);
+
+		boolean result = fixture.applyContainerDropDescriptionTool(diagramRepresentation, dropToolId, dropTarget, elementToBeDropped);
+		Assert.assertTrue("The drop of element failed", result); //$NON-NLS-1$
+		fixture.flushDisplayEvents();
+
+		EObject createdElementRepresentation = null;
+		if (dropTarget instanceof DNodeContainer) {
+			createdElementRepresentation = ((DNodeContainer) dropTarget).getOwnedDiagramElements().get(0);
+		}
+		if (dropTarget instanceof DSemanticDiagram) {
+			createdElementRepresentation = ((DSemanticDiagram) dropTarget).getOwnedDiagramElements().get(0);
+		}
+
+		Assert.assertTrue(createdElementRepresentation instanceof DRepresentationElement);
+
+		graphicalChecker.validateNode((DRepresentationElement) createdElementRepresentation);
+		semanticChecker.validateNode((DRepresentationElement) createdElementRepresentation);
+
+		// undo
+		fixture.getEditingDomain().getCommandStack().undo();
+		fixture.flushDisplayEvents();
+		graphicalChecker.validateAfterUndo();
+		semanticChecker.validateAfterUndo();
+
+		// redo
+		fixture.getEditingDomain().getCommandStack().redo();
+		fixture.flushDisplayEvents();
+
+		graphicalChecker.validateAfterRedo();
+		semanticChecker.validateAfterRedo();
+	}
+
+	protected abstract DragAndDropTarget getTopNodeGraphicalContainer();
+
+	/**
+	 * Release resources
+	 */
+	@After
+	public void tearDown() {
+		this.root = null;
+	}
+}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Class_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Class_TopNode_DropTest.java
deleted file mode 100755
index 2136164..0000000
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Class_TopNode_DropTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. 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:
- *  Rengin Battal (ARTAL) - rengin.battal@artal.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.junit.framework.classification.ClassificationRunner;
-import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
-import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
-import org.eclipse.papyrus.junit.utils.rules.PluginResource;
-import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.papyrus.uml.sirius.clazz.diagram.internal.constants.SemanticDropToolsIds;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.uml2.uml.Model;
-import org.eclipse.uml2.uml.NamedElement;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Drop Class test
- */
-@PluginResource("resources/drop/topNode/TopNode_DropTest.di")
-@SuppressWarnings("nls")
-public class Class_TopNode_DropTest extends AbstractPapyrusTest {
-
-	private static final String CLASS_DIAGRAM_NAME = "TopNode_Drop_ClassDiagram";
-
-	@Rule
-	public final SiriusDiagramEditorFixture fixture = new SiriusDiagramEditorFixture(/* Collections.singletonList("aird") */);
-
-	@Test
-	@ActiveDiagram(CLASS_DIAGRAM_NAME)
-	public void Class_DropTest() {
-
-		Assert.assertTrue(fixture.getModel() instanceof Model);
-		Model rootModel = (Model) fixture.getModel();
-		NamedElement elementToBeDropped = rootModel.getMember("ClassToDrop");
-		Assert.assertTrue("The element to be dropped is an instance of UML Class", elementToBeDropped instanceof org.eclipse.uml2.uml.Class);
-
-		DiagramEditPart diagramEditpart = fixture.getActiveDiagram();
-		Diagram diagram = diagramEditpart.getDiagramView();
-		Assert.assertEquals("The diagram must not yet have children", 0, diagram.getChildren().size());
-
-		DDiagram diagramRepresentation = (DDiagram) diagram.getElement();
-		fixture.applyContainerDropDescriptionTool(diagramRepresentation, SemanticDropToolsIds.DROP_CLASS_TOOL, diagramRepresentation, elementToBeDropped);
-		fixture.flushDisplayEvents();
-
-		Assert.assertEquals("The diagram must have one child after the Drop action", 1, diagram.getChildren().size());
-
-		// undo
-		fixture.getEditingDomain().getCommandStack().undo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram does not contain any children after undoing the Drop action", 0, diagram.getChildren().size());
-
-		// redo
-		fixture.getEditingDomain().getCommandStack().redo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram contains one child after redoing the Drop action", 1, diagram.getChildren().size());
-		Object element = diagram.getChildren().get(0);
-		Assert.assertTrue("The created element must be a View", element instanceof View);
-		EObject siriusNewRepresentation = ((View) element).getElement();
-		Assert.assertTrue("The created sirus node must be a DNode", siriusNewRepresentation instanceof DNodeContainer);
-		EObject semanticElement = ((DNodeContainer) siriusNewRepresentation).getSemanticElements().iterator().next();
-		Assert.assertTrue("The created element must be a UML Class", semanticElement instanceof org.eclipse.uml2.uml.Class);
-	}
-}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Comment_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Comment_TopNode_DropTest.java
index bde2956..11ab1e1 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Comment_TopNode_DropTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Comment_TopNode_DropTest.java
@@ -17,7 +17,6 @@
 import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
 import org.eclipse.gmf.runtime.notation.Diagram;
 import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.junit.framework.classification.ClassificationRunner;
 import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
 import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
@@ -28,10 +27,11 @@
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
 /**
  * Drop Class test
+ * 
+ * TODO : move the test into {@link DropTopNodeOnClassDiagram_ModelOwner_Test} when the comment will be included in the common viewpoint in the VSL
  */
 @PluginResource("resources/drop/topNode/TopNode_DropTest.di")
 @SuppressWarnings("nls")
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Component_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Component_TopNode_DropTest.java
deleted file mode 100755
index af97034..0000000
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Component_TopNode_DropTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. 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:
- *  Rengin Battal (ARTAL) - rengin.battal@artal.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.junit.framework.classification.ClassificationRunner;
-import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
-import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
-import org.eclipse.papyrus.junit.utils.rules.PluginResource;
-import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.uml2.uml.Model;
-import org.eclipse.uml2.uml.NamedElement;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Drop Class test
- */
-@PluginResource("resources/drop/topNode/TopNode_DropTest.di")
-@SuppressWarnings("nls")
-public class Component_TopNode_DropTest extends AbstractPapyrusTest {
-
-	private static final String CLASS_DIAGRAM_NAME = "TopNode_Drop_ClassDiagram";
-
-	@Rule
-	public final SiriusDiagramEditorFixture fixture = new SiriusDiagramEditorFixture(/* Collections.singletonList("aird") */);
-
-	@Test
-	@ActiveDiagram(CLASS_DIAGRAM_NAME)
-	public void component_DropTest() {
-
-		Assert.assertTrue(fixture.getModel() instanceof Model);
-		Model rootModel = (Model) fixture.getModel();
-		NamedElement elementToBeDropped = rootModel.getMember("ComponentToDrop");
-		Assert.assertTrue("The element to be dropped is an instance of UML Component", elementToBeDropped instanceof org.eclipse.uml2.uml.Component);
-
-		DiagramEditPart diagramEditpart = fixture.getActiveDiagram();
-		Diagram diagram = diagramEditpart.getDiagramView();
-		Assert.assertEquals("The diagram must not yet have children", 0, diagram.getChildren().size());
-
-		DDiagram diagramRepresentation = (DDiagram) diagram.getElement();
-		fixture.applyContainerDropDescriptionTool(diagramRepresentation, "SemanticComponentDrop", diagramRepresentation, elementToBeDropped);
-		fixture.flushDisplayEvents();
-
-		Assert.assertEquals("The diagram must have one child after the Drop action", 1, diagram.getChildren().size());
-
-		// undo
-		fixture.getEditingDomain().getCommandStack().undo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram does not contain any children after undoing the Drop action", 0, diagram.getChildren().size());
-
-		// redo
-		fixture.getEditingDomain().getCommandStack().redo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram contains one child after redoing the Drop action", 1, diagram.getChildren().size());
-		Object element = diagram.getChildren().get(0);
-		Assert.assertTrue("The created element must be a View", element instanceof View);
-		EObject siriusNewRepresentation = ((View) element).getElement();
-		Assert.assertTrue("The created sirus node must be a DNode", siriusNewRepresentation instanceof DNodeContainer);
-		EObject semanticElement = ((DNodeContainer) siriusNewRepresentation).getSemanticElements().iterator().next();
-		Assert.assertTrue("The created element must be a UML Component", semanticElement instanceof org.eclipse.uml2.uml.Component);
-	}
-}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Constraint_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Constraint_TopNode_DropTest.java
deleted file mode 100755
index 68eaa27..0000000
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Constraint_TopNode_DropTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. 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:
- *  Rengin Battal (ARTAL) - rengin.battal@artal.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.junit.framework.classification.ClassificationRunner;
-import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
-import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
-import org.eclipse.papyrus.junit.utils.rules.PluginResource;
-import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
-import org.eclipse.uml2.uml.Model;
-import org.eclipse.uml2.uml.NamedElement;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Drop Class test
- */
-@PluginResource("resources/drop/topNode/TopNode_DropTest.di")
-@SuppressWarnings("nls")
-public class Constraint_TopNode_DropTest extends AbstractPapyrusTest {
-
-	private static final String CLASS_DIAGRAM_NAME = "TopNode_Drop_ClassDiagram";
-
-	@Rule
-	public final SiriusDiagramEditorFixture fixture = new SiriusDiagramEditorFixture(/* Collections.singletonList("aird") */);
-
-	@SuppressWarnings("restriction")
-	@Test
-	@ActiveDiagram(CLASS_DIAGRAM_NAME)
-	public void Constraint_DropTest() {
-
-		Assert.assertTrue(fixture.getModel() instanceof Model);
-		Model rootModel = (Model) fixture.getModel();
-		NamedElement elementToBeDropped = rootModel.getMember("ConstraintToDrop");
-		Assert.assertTrue("The element to be dropped is an instance of UML Constraint", elementToBeDropped instanceof org.eclipse.uml2.uml.Constraint);
-
-		DiagramEditPart diagramEditpart = fixture.getActiveDiagram();
-		Diagram diagram = diagramEditpart.getDiagramView();
-		Assert.assertEquals("The diagram must not yet have children", 0, diagram.getChildren().size());
-
-		DDiagram diagramRepresentation = (DDiagram) diagram.getElement();
-		fixture.applyContainerDropDescriptionTool(diagramRepresentation, "Constraint from Model", diagramRepresentation, elementToBeDropped);
-		fixture.flushDisplayEvents();
-
-		Assert.assertEquals("The diagram must have one child after the Drop action", 1, diagram.getChildren().size());
-
-		// undo
-		fixture.getEditingDomain().getCommandStack().undo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram does not contain any children after undoing the Drop action", 0, diagram.getChildren().size());
-
-		// redo
-		fixture.getEditingDomain().getCommandStack().redo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram contains one child after redoing the Drop action", 1, diagram.getChildren().size());
-		Object element = diagram.getChildren().get(0);
-		Assert.assertTrue("The created element must be a View", element instanceof View);
-		EObject siriusNewRepresentation = ((View) element).getElement();
-		Assert.assertTrue("The created sirus node must be a DNode", siriusNewRepresentation instanceof DNodeSpec);
-		EObject semanticElement = ((DNodeSpec) siriusNewRepresentation).getSemanticElements().iterator().next();
-		Assert.assertTrue("The created element must be a UML Constraint", semanticElement instanceof org.eclipse.uml2.uml.Constraint);
-	}
-}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/DataType_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/DataType_TopNode_DropTest.java
deleted file mode 100755
index f0ef298..0000000
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/DataType_TopNode_DropTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. 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:
- *  Rengin Battal (ARTAL) - rengin.battal@artal.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
-
-import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
-import org.eclipse.papyrus.junit.utils.rules.PluginResource;
-import org.eclipse.papyrus.uml.sirius.clazz.diagram.internal.constants.MappingTypes;
-import org.eclipse.papyrus.uml.sirius.clazz.diagram.internal.constants.SemanticDropToolsIds;
-import org.eclipse.uml2.uml.DataType;
-import org.eclipse.uml2.uml.NamedElement;
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * DataType Class test
- */
-@PluginResource("resources/drop/topNode/TopNode_DropTest.di")
-public class DataType_TopNode_DropTest extends AbstractTopNodeDropTest {
-
-	private static final String CLASS_DIAGRAM_NAME = "TopNode_Drop_ClassDiagram"; //$NON-NLS-1$
-
-
-	@Test
-	@ActiveDiagram(CLASS_DIAGRAM_NAME)
-	public void dataType_DropTest() {
-		final NamedElement elementToBeDropped = this.root.getMember("DataTypeToDrop"); //$NON-NLS-1$
-		Assert.assertTrue("The element to be dropped must be an instance of DataType", elementToBeDropped instanceof DataType);//$NON-NLS-1$
-		dropDNodeContainer(elementToBeDropped, SemanticDropToolsIds.DROP_DATATYPE_TOOL, MappingTypes.DATATYPE_NODE_TYPE);
-	}
-}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/DropTopNodeOnClassDiagram_ModelOwner_Test.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/DropTopNodeOnClassDiagram_ModelOwner_Test.java
new file mode 100755
index 0000000..7ef35a9
--- /dev/null
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/DropTopNodeOnClassDiagram_ModelOwner_Test.java
@@ -0,0 +1,172 @@
+/*****************************************************************************
+ * Copyright (c) 2022 CEA LIST
+ *
+ * All rights reserved. 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:
+ *  Vincent Lorenzo (CEA LIST) <vincent.lorenzo@cea.fr> - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
+
+import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.uml.sirius.clazz.diagram.internal.constants.SemanticDropToolsIds;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_ClassCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_ComponentCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_ConstraintCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_DataTypeCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_EnumerationCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_InformationItemCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_InstanceSpecificationCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_InterfaceCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_ModelCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_PackageCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_PrimitiveTypeCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.creation.graphical.CD_SignalCreationChecker;
+import org.eclipse.papyrus.uml.siriusdiag.clazz.tests.checkers.internal.api.SemanticDropChecker;
+import org.eclipse.sirius.diagram.DragAndDropTarget;
+import org.eclipse.uml2.uml.Component;
+import org.eclipse.uml2.uml.Constraint;
+import org.eclipse.uml2.uml.DataType;
+import org.eclipse.uml2.uml.Enumeration;
+import org.eclipse.uml2.uml.InformationItem;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PrimitiveType;
+import org.eclipse.uml2.uml.Signal;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * This class tests the drop of semantic element into the Diagram. The diagram background is a UML model
+ */
+@PluginResource("resources/drop/topNode/TopNode_DropTest.di")
+public class DropTopNodeOnClassDiagram_ModelOwner_Test extends AbstractTopNodeDropTests {
+
+
+	private static final String CLASS_DIAGRAM_NAME = "TopNode_Drop_ClassDiagram"; //$NON-NLS-1$
+
+	@Test
+	@ActiveDiagram(CLASS_DIAGRAM_NAME)
+	public void dropComment() {
+		// TODO : firstly we need to create the tool and to move the Comment in the expected layer
+		// final Comment elementToBeDropped = this.root.getOwnedComments().get(0);
+		// Assert.assertTrue("The element to be dropped must be an instance of Class", elementToBeDropped instanceof org.eclipse.uml2.uml.Comment);//$NON-NLS-1$
+		// dropNode(SemanticDropToolsIds.DROP__COMMENT__TOOL, new CD_CommentCreationChecker(this.diagram, this.diagramRepresentation), new SemanticDropChecker(elementToBeDropped), elementToBeDropped);
+	}
+
+	@Test
+	@ActiveDiagram(CLASS_DIAGRAM_NAME)
+	public void dropClass() {
+		final NamedElement elementToBeDropped = this.root.getMember("ClassToDrop"); //$NON-NLS-1$
+		Assert.assertTrue("The element to be dropped must be an instance of Class", elementToBeDropped instanceof org.eclipse.uml2.uml.Class);//$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__CLASS__TOOL, new CD_ClassCreationChecker(this.diagram, this.diagramRepresentation), new SemanticDropChecker(elementToBeDropped), elementToBeDropped);
+	}
+
+	@Test
+	@ActiveDiagram(CLASS_DIAGRAM_NAME)
+	public void dropComponent() {
+		final NamedElement elementToBeDropped = this.root.getMember("ComponentToDrop"); //$NON-NLS-1$
+		Assert.assertTrue("The element to be dropped must be an instance of Component", elementToBeDropped instanceof Component);//$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__COMPONENT__TOOL, new CD_ComponentCreationChecker(this.diagram, this.diagramRepresentation), new SemanticDropChecker(elementToBeDropped), elementToBeDropped);
+	}
+
+	@Test
+	@ActiveDiagram(CLASS_DIAGRAM_NAME)
+	public void dropConstraint() {
+		final Constraint elementToBeDropped = this.root.getOwnedElements().stream().filter(Constraint.class::isInstance).map(Constraint.class::cast).findFirst().get();
+		Assert.assertTrue("The element to be dropped must be an instance of Constraint", elementToBeDropped instanceof org.eclipse.uml2.uml.Constraint);//$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__CONSTRAINT__TOOL, new CD_ConstraintCreationChecker(this.diagram, this.diagramRepresentation), new SemanticDropChecker(elementToBeDropped), elementToBeDropped);
+	}
+
+	@Test
+	@ActiveDiagram(CLASS_DIAGRAM_NAME)
+	public void dropDatatype() {
+		final NamedElement elementToBeDropped = this.root.getMember("DataTypeToDrop"); //$NON-NLS-1$
+		Assert.assertTrue("The element to be dropped must be an instance of DataType", elementToBeDropped instanceof DataType);//$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__DATATYPE__TOOL, new CD_DataTypeCreationChecker(this.diagram, this.diagramRepresentation), new SemanticDropChecker(elementToBeDropped), elementToBeDropped);
+	}
+
+	@Test
+	@ActiveDiagram(CLASS_DIAGRAM_NAME)
+	public void dropEnumeration() {
+		final NamedElement elementToBeDropped = this.root.getMember("EnumerationToDrop"); //$NON-NLS-1$
+		Assert.assertTrue("The element to be dropped must be an instance of Enumeration", elementToBeDropped instanceof Enumeration);//$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__ENUMERATION__TOOL, new CD_EnumerationCreationChecker(this.diagram, this.diagramRepresentation), new SemanticDropChecker(elementToBeDropped), elementToBeDropped);
+	}
+
+	@Test
+	@ActiveDiagram(CLASS_DIAGRAM_NAME)
+	public void dropInformationItem() {
+		final NamedElement elementToBeDropped = this.root.getMember("InformationItemToDrop"); //$NON-NLS-1$
+		Assert.assertTrue("The element to be dropped must be an instance of InformationItem", elementToBeDropped instanceof InformationItem);//$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__INFORMATION_ITEM__TOOL, new CD_InformationItemCreationChecker(this.diagram, this.diagramRepresentation), new SemanticDropChecker(elementToBeDropped), elementToBeDropped);
+	}
+
+	@Test
+	@ActiveDiagram(CLASS_DIAGRAM_NAME)
+	public void dropInstanceSpecification() {
+		final NamedElement elementToBeDropped = this.root.getMember("InstanceSpecificationToDrop"); //$NON-NLS-1$
+		Assert.assertTrue("The element to be dropped must be an instance of InstanceSpecification", elementToBeDropped instanceof InstanceSpecification);//$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__INSTANCE_SPECIFICATION__TOOL, new CD_InstanceSpecificationCreationChecker(this.diagram, this.diagramRepresentation), new SemanticDropChecker(elementToBeDropped), elementToBeDropped);
+	}
+
+	@Test
+	@ActiveDiagram(CLASS_DIAGRAM_NAME)
+	public void dropInterface() {
+		final NamedElement elementToBeDropped = this.root.getMember("InterfaceToDrop"); //$NON-NLS-1$
+		Assert.assertTrue("The element to be dropped must be an instance of Interface", elementToBeDropped instanceof Interface);//$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__INTERFACE__TOOL, new CD_InterfaceCreationChecker(this.diagram, this.diagramRepresentation), new SemanticDropChecker(elementToBeDropped), elementToBeDropped);
+	}
+
+	@Test
+	@ActiveDiagram(CLASS_DIAGRAM_NAME)
+	public void dropModel() {
+		final NamedElement elementToBeDropped = this.root.getMember("ModelToDrop"); //$NON-NLS-1$
+		Assert.assertTrue("The element to be dropped must be an instance of Model", elementToBeDropped instanceof Model);//$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__MODEL__TOOL, new CD_ModelCreationChecker(this.diagram, this.diagramRepresentation), new SemanticDropChecker(elementToBeDropped), elementToBeDropped);
+	}
+
+	@Test
+	@ActiveDiagram(CLASS_DIAGRAM_NAME)
+	public void dropPackage() {
+		final NamedElement elementToBeDropped = this.root.getMember("PackageToDrop"); //$NON-NLS-1$
+		Assert.assertTrue("The element to be dropped must be an instance of Package", elementToBeDropped instanceof Package);//$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__PACKAGE__TOOL, new CD_PackageCreationChecker(this.diagram, this.diagramRepresentation), new SemanticDropChecker(elementToBeDropped), elementToBeDropped);
+	}
+
+	@Test
+	@ActiveDiagram(CLASS_DIAGRAM_NAME)
+	public void dropPrimitiveType() {
+		final NamedElement elementToBeDropped = this.root.getMember("PrimitiveTypeToDrop"); //$NON-NLS-1$
+		Assert.assertTrue("The element to be dropped must be an instance of PrimitiveType", elementToBeDropped instanceof PrimitiveType);//$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__PRIMITIVETYPE__TOOL, new CD_PrimitiveTypeCreationChecker(this.diagram, this.diagramRepresentation), new SemanticDropChecker(elementToBeDropped), elementToBeDropped);
+	}
+
+	@Test
+	@ActiveDiagram(CLASS_DIAGRAM_NAME)
+	public void dropSignal() {
+		final NamedElement elementToBeDropped = this.root.getMember("SignalToDrop"); //$NON-NLS-1$
+		Assert.assertTrue("The element to be dropped must be an instance of Signal", elementToBeDropped instanceof Signal);//$NON-NLS-1$
+		dropNode(SemanticDropToolsIds.DROP__SIGNAL__TOOL, new CD_SignalCreationChecker(this.diagram, this.diagramRepresentation), new SemanticDropChecker(elementToBeDropped), elementToBeDropped);
+	}
+
+	/**
+	 * @see org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes.AbstractTopNodeDropTests#getTopNodeGraphicalContainer()
+	 *
+	 * @return
+	 */
+
+	@Override
+	protected DragAndDropTarget getTopNodeGraphicalContainer() {
+		return this.diagramRepresentation;
+	}
+}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Enumeration_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Enumeration_TopNode_DropTest.java
deleted file mode 100755
index 707142a..0000000
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Enumeration_TopNode_DropTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. 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:
- *  Rengin Battal (ARTAL) - rengin.battal@artal.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
-
-import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
-import org.eclipse.papyrus.junit.utils.rules.PluginResource;
-import org.eclipse.papyrus.uml.sirius.clazz.diagram.internal.constants.MappingTypes;
-import org.eclipse.papyrus.uml.sirius.clazz.diagram.internal.constants.SemanticDropToolsIds;
-import org.eclipse.uml2.uml.Enumeration;
-import org.eclipse.uml2.uml.NamedElement;
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * Enumeration Class test
- */
-@PluginResource("resources/drop/topNode/TopNode_DropTest.di")
-public class Enumeration_TopNode_DropTest extends AbstractTopNodeDropTest {
-
-	private static final String CLASS_DIAGRAM_NAME = "TopNode_Drop_ClassDiagram"; //$NON-NLS-1$
-
-	
-	@Test
-	@ActiveDiagram(CLASS_DIAGRAM_NAME)
-	public void enumeration_DropTest() {
-		final NamedElement elementToBeDropped = this.root.getMember("EnumerationToDrop"); //$NON-NLS-1$
-		Assert.assertTrue("The element to be dropped must be an instance of Enumeration", elementToBeDropped instanceof Enumeration);//$NON-NLS-1$
-		dropDNodeContainer(elementToBeDropped, SemanticDropToolsIds.DROP_ENUMERATION_TOOL, MappingTypes.ENUMERATION_NODE_TYPE);
-	}
-}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/InformationItem_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/InformationItem_TopNode_DropTest.java
deleted file mode 100755
index e8516e0..0000000
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/InformationItem_TopNode_DropTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. 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:
- *  Rengin Battal (ARTAL) - rengin.battal@artal.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.junit.framework.classification.ClassificationRunner;
-import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
-import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
-import org.eclipse.papyrus.junit.utils.rules.PluginResource;
-import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
-import org.eclipse.uml2.uml.Model;
-import org.eclipse.uml2.uml.NamedElement;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Drop Class test
- */
-@PluginResource("resources/drop/topNode/TopNode_DropTest.di")
-@SuppressWarnings("nls")
-public class InformationItem_TopNode_DropTest extends AbstractPapyrusTest {
-
-	private static final String CLASS_DIAGRAM_NAME = "TopNode_Drop_ClassDiagram";
-
-	@Rule
-	public final SiriusDiagramEditorFixture fixture = new SiriusDiagramEditorFixture(/* Collections.singletonList("aird") */);
-
-	@SuppressWarnings("restriction")
-	@Test
-	@ActiveDiagram(CLASS_DIAGRAM_NAME)
-	public void InformationItem_DropTest() {
-
-		Assert.assertTrue(fixture.getModel() instanceof Model);
-		Model rootModel = (Model) fixture.getModel();
-		NamedElement elementToBeDropped = rootModel.getMember("InformationItemToDrop");
-		Assert.assertTrue("The element to be dropped is an instance of UML InformationItem", elementToBeDropped instanceof org.eclipse.uml2.uml.InformationItem);
-
-		DiagramEditPart diagramEditpart = fixture.getActiveDiagram();
-		Diagram diagram = diagramEditpart.getDiagramView();
-		Assert.assertEquals("The diagram must not yet have children", 0, diagram.getChildren().size());
-
-		DDiagram diagramRepresentation = (DDiagram) diagram.getElement();
-		fixture.applyContainerDropDescriptionTool(diagramRepresentation, "InformationItem from Model", diagramRepresentation, elementToBeDropped);
-		fixture.flushDisplayEvents();
-
-		Assert.assertEquals("The diagram must have one child after the Drop action", 1, diagram.getChildren().size());
-
-		// undo
-		fixture.getEditingDomain().getCommandStack().undo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram does not contain any children after undoing the Drop action", 0, diagram.getChildren().size());
-
-		// redo
-		fixture.getEditingDomain().getCommandStack().redo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram contains one child after redoing the Drop action", 1, diagram.getChildren().size());
-		Object element = diagram.getChildren().get(0);
-		Assert.assertTrue("The created element must be a View", element instanceof View);
-		EObject siriusNewRepresentation = ((View) element).getElement();
-		Assert.assertTrue("The created sirus node must be a DNode", siriusNewRepresentation instanceof DNodeSpec);
-		EObject semanticElement = ((DNodeSpec) siriusNewRepresentation).getSemanticElements().iterator().next();
-		Assert.assertTrue("The created element must be a UML InformationItem", semanticElement instanceof org.eclipse.uml2.uml.InformationItem);
-	}
-}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/InstanceSpecification_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/InstanceSpecification_TopNode_DropTest.java
deleted file mode 100755
index aae9226..0000000
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/InstanceSpecification_TopNode_DropTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. 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:
- *  Rengin Battal (ARTAL) - rengin.battal@artal.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.junit.framework.classification.ClassificationRunner;
-import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
-import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
-import org.eclipse.papyrus.junit.utils.rules.PluginResource;
-import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.sirius.diagram.DNodeList;
-import org.eclipse.uml2.uml.Model;
-import org.eclipse.uml2.uml.NamedElement;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Drop Class test
- */
-@PluginResource("resources/drop/topNode/TopNode_DropTest.di")
-@SuppressWarnings("nls")
-public class InstanceSpecification_TopNode_DropTest extends AbstractPapyrusTest {
-
-	private static final String CLASS_DIAGRAM_NAME = "TopNode_Drop_ClassDiagram";
-
-	@Rule
-	public final SiriusDiagramEditorFixture fixture = new SiriusDiagramEditorFixture(/* Collections.singletonList("aird") */);
-
-	@SuppressWarnings("restriction")
-	@Test
-	@ActiveDiagram(CLASS_DIAGRAM_NAME)
-	public void InstanceSpecification_DropTest() {
-
-		Assert.assertTrue(fixture.getModel() instanceof Model);
-		Model rootModel = (Model) fixture.getModel();
-		NamedElement elementToBeDropped = rootModel.getMember("InstanceSpecificationToDrop");
-		Assert.assertTrue("The element to be dropped is an instance of UML InstanceSpecification", elementToBeDropped instanceof org.eclipse.uml2.uml.InstanceSpecification);
-
-		DiagramEditPart diagramEditpart = fixture.getActiveDiagram();
-		Diagram diagram = diagramEditpart.getDiagramView();
-		Assert.assertEquals("The diagram must not yet have children", 0, diagram.getChildren().size());
-
-		DDiagram diagramRepresentation = (DDiagram) diagram.getElement();
-		fixture.applyContainerDropDescriptionTool(diagramRepresentation, "InstanceSpecification from Model", diagramRepresentation, elementToBeDropped);
-		fixture.flushDisplayEvents();
-
-		Assert.assertEquals("The diagram must have one child after the Drop action", 1, diagram.getChildren().size());
-
-		// undo
-		fixture.getEditingDomain().getCommandStack().undo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram does not contain any children after undoing the Drop action", 0, diagram.getChildren().size());
-
-		// redo
-		fixture.getEditingDomain().getCommandStack().redo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram contains one child after redoing the Drop action", 1, diagram.getChildren().size());
-		Object element = diagram.getChildren().get(0);
-		Assert.assertTrue("The created element must be a View", element instanceof View);
-		EObject siriusNewRepresentation = ((View) element).getElement();
-		Assert.assertTrue("The created sirus node must be a DNodeContainer", siriusNewRepresentation instanceof DNodeContainer);
-		EObject semanticElement = ((DNodeContainer) siriusNewRepresentation).getSemanticElements().iterator().next();
-		Assert.assertTrue("The created element must be a UML InstanceSpecification", semanticElement instanceof org.eclipse.uml2.uml.InstanceSpecification);
-	}
-}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Interface_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Interface_TopNode_DropTest.java
deleted file mode 100755
index 84bfa14..0000000
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Interface_TopNode_DropTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. 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:
- *  Rengin Battal (ARTAL) - rengin.battal@artal.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.junit.framework.classification.ClassificationRunner;
-import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
-import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
-import org.eclipse.papyrus.junit.utils.rules.PluginResource;
-import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.uml2.uml.Model;
-import org.eclipse.uml2.uml.NamedElement;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Drop Class test
- */
-@PluginResource("resources/drop/topNode/TopNode_DropTest.di")
-@SuppressWarnings("nls")
-public class Interface_TopNode_DropTest extends AbstractPapyrusTest {
-
-	private static final String CLASS_DIAGRAM_NAME = "TopNode_Drop_ClassDiagram";
-
-	@Rule
-	public final SiriusDiagramEditorFixture fixture = new SiriusDiagramEditorFixture(/* Collections.singletonList("aird") */);
-
-	@SuppressWarnings("restriction")
-	@Test
-	@ActiveDiagram(CLASS_DIAGRAM_NAME)
-	public void Interface_DropTest() {
-
-		Assert.assertTrue(fixture.getModel() instanceof Model);
-		Model rootModel = (Model) fixture.getModel();
-		NamedElement elementToBeDropped = rootModel.getMember("InterfaceToDrop");
-		Assert.assertTrue("The element to be dropped is an instance of UML Interface", elementToBeDropped instanceof org.eclipse.uml2.uml.Interface);
-
-		DiagramEditPart diagramEditpart = fixture.getActiveDiagram();
-		Diagram diagram = diagramEditpart.getDiagramView();
-		Assert.assertEquals("The diagram must not yet have children", 0, diagram.getChildren().size());
-
-		DDiagram diagramRepresentation = (DDiagram) diagram.getElement();
-		fixture.applyContainerDropDescriptionTool(diagramRepresentation, "Interface from Model", diagramRepresentation, elementToBeDropped);
-		fixture.flushDisplayEvents();
-
-		Assert.assertEquals("The diagram must have one child after the Drop action", 1, diagram.getChildren().size());
-
-		// undo
-		fixture.getEditingDomain().getCommandStack().undo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram does not contain any children after undoing the Drop action", 0, diagram.getChildren().size());
-
-		// redo
-		fixture.getEditingDomain().getCommandStack().redo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram contains one child after redoing the Drop action", 1, diagram.getChildren().size());
-		Object element = diagram.getChildren().get(0);
-		Assert.assertTrue("The created element must be a View", element instanceof View);
-		EObject siriusNewRepresentation = ((View) element).getElement();
-		Assert.assertTrue("The created sirus node must be a DNode", siriusNewRepresentation instanceof DNodeContainer);
-		EObject semanticElement = ((DNodeContainer) siriusNewRepresentation).getSemanticElements().iterator().next();
-		Assert.assertTrue("The created element must be a UML Interface", semanticElement instanceof org.eclipse.uml2.uml.Interface);
-	}
-}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Model_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Model_TopNode_DropTest.java
deleted file mode 100755
index a16864f..0000000
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Model_TopNode_DropTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. 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:
- *  Rengin Battal (ARTAL) - rengin.battal@artal.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.junit.framework.classification.ClassificationRunner;
-import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
-import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
-import org.eclipse.papyrus.junit.utils.rules.PluginResource;
-import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.papyrus.uml.sirius.clazz.diagram.internal.constants.SemanticDropToolsIds;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.uml2.uml.Model;
-import org.eclipse.uml2.uml.NamedElement;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Drop Class test
- */
-@PluginResource("resources/drop/topNode/TopNode_DropTest.di")
-@SuppressWarnings("nls")
-public class Model_TopNode_DropTest extends AbstractPapyrusTest {
-
-	private static final String CLASS_DIAGRAM_NAME = "TopNode_Drop_ClassDiagram";
-
-	@Rule
-	public final SiriusDiagramEditorFixture fixture = new SiriusDiagramEditorFixture(/* Collections.singletonList("aird") */);
-
-	@Test
-	@ActiveDiagram(CLASS_DIAGRAM_NAME)
-	public void Model_DropTest() {
-
-		Assert.assertTrue(fixture.getModel() instanceof Model);
-		Model rootModel = (Model) fixture.getModel();
-		NamedElement elementToBeDropped = rootModel.getMember("ModelToDrop");
-		Assert.assertTrue("The element to be dropped is an instance of UML Model", elementToBeDropped instanceof org.eclipse.uml2.uml.Model);
-
-		DiagramEditPart diagramEditpart = fixture.getActiveDiagram();
-		Diagram diagram = diagramEditpart.getDiagramView();
-		Assert.assertEquals("The diagram must not yet have children", 0, diagram.getChildren().size());
-
-		DDiagram diagramRepresentation = (DDiagram) diagram.getElement();
-		fixture.applyContainerDropDescriptionTool(diagramRepresentation, SemanticDropToolsIds.DROP_MODEL_TOOL, diagramRepresentation, elementToBeDropped);
-		fixture.flushDisplayEvents();
-
-		Assert.assertEquals("The diagram must have one child after the Drop action", 1, diagram.getChildren().size());
-
-		// undo
-		fixture.getEditingDomain().getCommandStack().undo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram does not contain any children after undoing the Drop action", 0, diagram.getChildren().size());
-
-		// redo
-		fixture.getEditingDomain().getCommandStack().redo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram contains one child after redoing the Drop action", 1, diagram.getChildren().size());
-		Object element = diagram.getChildren().get(0);
-		Assert.assertTrue("The created element must be a View", element instanceof View);
-		EObject siriusNewRepresentation = ((View) element).getElement();
-		Assert.assertTrue("The created sirus node must be a DNode", siriusNewRepresentation instanceof DNodeContainer);
-		EObject semanticElement = ((DNodeContainer) siriusNewRepresentation).getSemanticElements().iterator().next();
-		Assert.assertTrue("The created element must be a UML Model", semanticElement instanceof org.eclipse.uml2.uml.Model);
-	}
-}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Package_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Package_TopNode_DropTest.java
deleted file mode 100755
index 8874c1c..0000000
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Package_TopNode_DropTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. 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:
- *  Rengin Battal (ARTAL) - rengin.battal@artal.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.junit.framework.classification.ClassificationRunner;
-import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
-import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
-import org.eclipse.papyrus.junit.utils.rules.PluginResource;
-import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.papyrus.uml.sirius.clazz.diagram.internal.constants.SemanticDropToolsIds;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.uml2.uml.Model;
-import org.eclipse.uml2.uml.NamedElement;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Drop Class test
- */
-@PluginResource("resources/drop/topNode/TopNode_DropTest.di")
-@SuppressWarnings("nls")
-public class Package_TopNode_DropTest extends AbstractPapyrusTest {
-
-	private static final String CLASS_DIAGRAM_NAME = "TopNode_Drop_ClassDiagram";
-
-	@Rule
-	public final SiriusDiagramEditorFixture fixture = new SiriusDiagramEditorFixture(/* Collections.singletonList("aird") */);
-
-	@Test
-	@ActiveDiagram(CLASS_DIAGRAM_NAME)
-	public void Package_DropTest() {
-
-		Assert.assertTrue(fixture.getModel() instanceof Model);
-		Model rootModel = (Model) fixture.getModel();
-		NamedElement elementToBeDropped = rootModel.getMember("PackageToDrop");
-		Assert.assertTrue("The element to be dropped is an instance of UML Package", elementToBeDropped instanceof org.eclipse.uml2.uml.Package);
-
-		DiagramEditPart diagramEditpart = fixture.getActiveDiagram();
-		Diagram diagram = diagramEditpart.getDiagramView();
-		Assert.assertEquals("The diagram must not yet have children", 0, diagram.getChildren().size());
-
-		DDiagram diagramRepresentation = (DDiagram) diagram.getElement();
-		fixture.applyContainerDropDescriptionTool(diagramRepresentation, SemanticDropToolsIds.DROP_PACKAGE_TOOL, diagramRepresentation, elementToBeDropped);
-		fixture.flushDisplayEvents();
-
-		Assert.assertEquals("The diagram must have one child after the Drop action", 1, diagram.getChildren().size());
-
-		// undo
-		fixture.getEditingDomain().getCommandStack().undo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram does not contain any children after undoing the Drop action", 0, diagram.getChildren().size());
-
-		// redo
-		fixture.getEditingDomain().getCommandStack().redo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram contains one child after redoing the Drop action", 1, diagram.getChildren().size());
-		Object element = diagram.getChildren().get(0);
-		Assert.assertTrue("The created element must be a View", element instanceof View);
-		EObject siriusNewRepresentation = ((View) element).getElement();
-		Assert.assertTrue("The created sirus node must be a DNode", siriusNewRepresentation instanceof DNodeContainer);
-		EObject semanticElement = ((DNodeContainer) siriusNewRepresentation).getSemanticElements().iterator().next();
-		Assert.assertTrue("The created element must be a UML Package", semanticElement instanceof org.eclipse.uml2.uml.Package);
-	}
-}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/PrimitiveType_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/PrimitiveType_TopNode_DropTest.java
deleted file mode 100755
index d4b5ccf..0000000
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/PrimitiveType_TopNode_DropTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. 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:
- *  Rengin Battal (ARTAL) - rengin.battal@artal.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
-
-import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
-import org.eclipse.papyrus.junit.utils.rules.PluginResource;
-import org.eclipse.papyrus.uml.sirius.clazz.diagram.internal.constants.MappingTypes;
-import org.eclipse.papyrus.uml.sirius.clazz.diagram.internal.constants.SemanticDropToolsIds;
-import org.eclipse.uml2.uml.NamedElement;
-import org.eclipse.uml2.uml.PrimitiveType;
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * Drop Class test
- */
-@PluginResource("resources/drop/topNode/TopNode_DropTest.di")
-public class PrimitiveType_TopNode_DropTest extends AbstractTopNodeDropTest {
-
-	private static final String CLASS_DIAGRAM_NAME = "TopNode_Drop_ClassDiagram"; //$NON-NLS-1$
-
-	@Test
-	@ActiveDiagram(CLASS_DIAGRAM_NAME)
-	public void primitiveType_DropTest() {
-		final NamedElement elementToBeDropped = this.root.getMember("PrimitiveTypeToDrop"); //$NON-NLS-1$
-		Assert.assertTrue("The element to be dropped must be an instance of PrimitiveType", elementToBeDropped instanceof PrimitiveType);//$NON-NLS-1$
-		dropDNodeContainer(elementToBeDropped, SemanticDropToolsIds.DROP_PRIMITIVETYPE_TOOL, MappingTypes.PRIMITIVETYPE_NODE_TYPE);
-
-	}
-}
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Signal_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Signal_TopNode_DropTest.java
deleted file mode 100755
index 93842f0..0000000
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Signal_TopNode_DropTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. 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:
- *  Rengin Battal (ARTAL) - rengin.battal@artal.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.uml.siriusdiag.clazz.tests.drop.topNodes;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
-import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
-import org.eclipse.papyrus.junit.utils.rules.PluginResource;
-import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.uml2.uml.Model;
-import org.eclipse.uml2.uml.NamedElement;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-
-/**
- * Drop Class test
- */
-@PluginResource("resources/drop/topNode/TopNode_DropTest.di")
-@SuppressWarnings("nls")
-public class Signal_TopNode_DropTest extends AbstractPapyrusTest {
-
-	private static final String CLASS_DIAGRAM_NAME = "TopNode_Drop_ClassDiagram";
-
-	@Rule
-	public final SiriusDiagramEditorFixture fixture = new SiriusDiagramEditorFixture(/* Collections.singletonList("aird") */);
-
-	@SuppressWarnings("restriction")
-	@Test
-	@ActiveDiagram(CLASS_DIAGRAM_NAME)
-	public void Signal_DropTest() {
-
-		Assert.assertTrue(fixture.getModel() instanceof Model);
-		Model rootModel = (Model) fixture.getModel();
-		NamedElement elementToBeDropped = rootModel.getMember("SignalToDrop");
-		Assert.assertTrue("The element to be dropped is an instance of UML Signal", elementToBeDropped instanceof org.eclipse.uml2.uml.Signal);
-
-		DiagramEditPart diagramEditpart = fixture.getActiveDiagram();
-		Diagram diagram = diagramEditpart.getDiagramView();
-		Assert.assertEquals("The diagram must not yet have children", 0, diagram.getChildren().size());
-
-		DDiagram diagramRepresentation = (DDiagram) diagram.getElement();
-		fixture.applyContainerDropDescriptionTool(diagramRepresentation, "Signal from Model", diagramRepresentation, elementToBeDropped);
-		fixture.flushDisplayEvents();
-
-		Assert.assertEquals("The diagram must have one child after the Drop action", 1, diagram.getChildren().size());
-
-		// undo
-		fixture.getEditingDomain().getCommandStack().undo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram does not contain any children after undoing the Drop action", 0, diagram.getChildren().size());
-
-		// redo
-		fixture.getEditingDomain().getCommandStack().redo();
-		fixture.flushDisplayEvents();
-		Assert.assertEquals("The diagram contains one child after redoing the Drop action", 1, diagram.getChildren().size());
-		Object element = diagram.getChildren().get(0);
-		Assert.assertTrue("The created element must be a View", element instanceof View);
-		EObject siriusNewRepresentation = ((View) element).getElement();
-		Assert.assertTrue("The created sirus node must be a DNodeContainer", siriusNewRepresentation instanceof DNodeContainer);
-		EObject semanticElement = ((DNodeContainer) siriusNewRepresentation).getSemanticElements().iterator().next();
-		Assert.assertTrue("The created element must be a UML Signal", semanticElement instanceof org.eclipse.uml2.uml.Signal);
-	}
-}