[564680] Improved diagram display.

When merging a deletion of a Sirius element, the diagrams disappear from
the content merge viewer and are replaced by a white background. This is
due to the DiagramMatchAccessorImpl#getDiagram(MergeViewerSide) method,
which did not correctly find the diagram associated with a deleted
graphical element.

Bug: 564680
Change-Id: I48151683490f9617b661d7ae703bd4058838a30f
Signed-off-by: Glenn Plouhinec <glenn.plouhinec@obeo.fr>
diff --git a/org.eclipse.emf.compare-parent/pom.xml b/org.eclipse.emf.compare-parent/pom.xml
index 048c7ff..745425d 100644
--- a/org.eclipse.emf.compare-parent/pom.xml
+++ b/org.eclipse.emf.compare-parent/pom.xml
@@ -512,8 +512,9 @@
       <modules>
         <module>../packaging/org.eclipse.emf.compare.update.extras</module>
         <module>../packaging/org.eclipse.emf.compare.diagram.sirius-feature</module>
-        <module>../plugins/org.eclipse.emf.compare.diagram.sirius</module>
         <module>../plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius</module>
+        <module>../plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests</module>
+        <module>../plugins/org.eclipse.emf.compare.diagram.sirius</module>
         <module>../plugins/org.eclipse.emf.compare.diagram.sirius.tests</module>
         <module>../plugins/org.eclipse.emf.compare.diagram.sirius.tests.design</module>
       </modules>
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.checkstyle b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.checkstyle
new file mode 100644
index 0000000..2684ff1
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.checkstyle
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+  <local-check-config name="EMF Compare" location="/org.eclipse.emf.compare-parent/codeStyle/EMFCompareCheckstyle6Configuration.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="all" enabled="true" check-config-name="EMF Compare" local="true">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.classpath b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.classpath
new file mode 100644
index 0000000..3e5654f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.classpath
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src">
+		<attributes>
+			<attribute name="test" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.project b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.project
new file mode 100644
index 0000000..16c3cfb
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.compare.diagram.ide.ui.sirius.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..c615953
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,368 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
+org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
+org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
+org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=false
+org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.indent_tag_description=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags=do not insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=110
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=8
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_not_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.lineSplit=110
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.text_block_indentation=0
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..7e2f24d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,67 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_EMF Compare
+formatter_settings_version=18
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=false
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.push_down_negation=false
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_modifiers=false
+sp_cleanup.remove_redundant_semicolons=false
+sp_cleanup.remove_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=false
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_array_creation=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_autoboxing=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=true
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_unboxing=false
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5de3303
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.compare.diagram.ide.ui.sirius.tests
+Bundle-Version: 1.1.1.qualifier
+Bundle-Vendor: %providerName
+Automatic-Module-Name: org.eclipse.emf.compare.diagram.ide.ui.sirius.tests
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-Localization: plugin
+Require-Bundle: org.junit,
+ org.mockito,
+ org.hamcrest,
+ org.eclipse.emf.compare.tests,
+ org.eclipse.emf.compare.diagram.ide.ui.sirius,
+ org.eclipse.emf.compare,
+ org.eclipse.emf.compare.diagram.sirius.tests,
+ org.eclipse.emf.compare.ide.ui.tests,
+ org.eclipse.emf.compare.diagram,
+ org.eclipse.emf.compare.rcp.ui,
+ org.eclipse.emf.compare.diagram.ide.ui,
+ org.eclipse.gmf.runtime.notation,
+ org.eclipse.sirius.diagram
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/about.html b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/about.html
new file mode 100644
index 0000000..670d108
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/about.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
+<html xmlns="http://www.w3.org/1999/xhtml"> 
+<head> 
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
+<title>Eclipse Foundation Software User Agreement</title> 
+</head> 
+ 
+<body lang="EN-US"> 
+<h2>Eclipse Foundation Software User Agreement</h2> 
+<p>April 14, 2010</p> 
+ 
+<h3>Usage Of Content</h3> 
+ 
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p> 
+ 
+<h3>Applicable Licenses</h3> 
+ 
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p> 
+ 
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p> 
+ 
+<ul> 
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li> 
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li> 
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li> 
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li> 
+</ul> 
+ 
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p> 
+ 
+<ul> 
+       <li>The top-level (root) directory</li> 
+       <li>Plug-in and Fragment directories</li> 
+       <li>Inside Plug-ins and Fragments packaged as JARs</li> 
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li> 
+       <li>Feature directories</li> 
+</ul> 
+ 
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p> 
+ 
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p> 
+ 
+<ul> 
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li> 
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li> 
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> 
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li> 
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li> 
+</ul> 
+ 
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p> 
+ 
+ 
+<h3>Use of Provisioning Technology</h3> 
+ 
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a 
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a> 
+   (&quot;Specification&quot;).</p> 
+ 
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p> 
+ 
+<ol> 
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li> 
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li> 
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li> 
+</ol> 
+ 
+<h3>Cryptography</h3> 
+ 
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p> 
+ 
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p> 
+</body> 
+</html> 
\ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/build.properties b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/build.properties
new file mode 100644
index 0000000..cdd2db7
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.html,\
+               plugin.properties
+src.includes = about.html
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/plugin.properties b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/plugin.properties
new file mode 100644
index 0000000..ef20563
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/plugin.properties
@@ -0,0 +1,12 @@
+################################################################################
+# Copyright (c) 2020 Obeo.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     Obeo - initial API and implementation
+################################################################################
+pluginName = EMF Compare Sirius Integration Tests
+providerName = Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/pom.xml b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/pom.xml
new file mode 100644
index 0000000..ef9b314
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/pom.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>emf.compare-test-parent</artifactId>
+    <groupId>org.eclipse.emf.compare</groupId>
+    <version>1.0.0-SNAPSHOT</version>
+    <relativePath>../../org.eclipse.emf.compare-parent/test-parent</relativePath>
+  </parent>
+  <groupId>org.eclipse.emf.compare</groupId>
+  <artifactId>org.eclipse.emf.compare.diagram.ide.ui.sirius.tests</artifactId>
+  <version>1.1.1-SNAPSHOT</version>
+  <packaging>eclipse-test-plugin</packaging>
+
+  <build>
+    <plugins>
+  	  <plugin>
+        <groupId>org.eclipse.tycho</groupId>
+        <artifactId>tycho-surefire-plugin</artifactId>
+        <configuration>
+          <includes>
+            <include>org/eclipse/emf/compare/diagram/ide/ui/sirius/tests/suite/AllTests.class</include>
+          </includes>
+          <useUIHarness>true</useUIHarness>
+		</configuration>
+	  </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/IDEUISiriusInputData.java b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/IDEUISiriusInputData.java
new file mode 100644
index 0000000..d373d0b
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/IDEUISiriusInputData.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2020 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.diagram.ide.ui.sirius.data;
+
+import java.io.IOException;
+
+import org.eclipse.emf.compare.tests.framework.AbstractInputData;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * This will provide the input model, their representation and other useful methods for all our Sirius tests.
+ *
+ * @author <a href="mailto:glenn.plouhinec@obeo.fr">Glenn Plouhinec</a>
+ */
+public class IDEUISiriusInputData extends AbstractInputData {
+
+	/**
+	 * The left model of "nodes1".
+	 *
+	 * @return The loaded left model.
+	 * @throws IOException
+	 *             Thrown if we could not access either this class's resource, or the file towards which
+	 *             <code>string</code> points.
+	 */
+	public Resource getNodes1Left() throws IOException {
+		return loadFromClassLoader("nodes1/left/left.nodes");
+	}
+
+	/**
+	 * The representation of the "nodes1" left model.
+	 *
+	 * @return The loaded left representation.
+	 * @throws IOException
+	 *             Thrown if we could not access either this class's resource, or the file towards which
+	 *             <code>string</code> points.
+	 */
+	public Resource getNodes1LeftRepresentation() throws IOException {
+		return loadFromClassLoader("nodes1/left/left.aird");
+	}
+
+	/**
+	 * The right model of "nodes1".
+	 *
+	 * @return The loaded right model.
+	 * @throws IOException
+	 *             Thrown if we could not access either this class's resource, or the file towards which
+	 *             <code>string</code> points.
+	 */
+	public Resource getNodes1Right() throws IOException {
+		return loadFromClassLoader("nodes1/right/right.nodes");
+	}
+
+	/**
+	 * The representation of the "nodes1" right model.
+	 *
+	 * @return The loaded right representation.
+	 * @throws IOException
+	 *             Thrown if we could not access either this class's resource, or the file towards which
+	 *             <code>string</code> points.
+	 */
+	public Resource getNodes1RightRepresentation() throws IOException {
+		return loadFromClassLoader("nodes1/right/right.aird");
+	}
+}
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/nodes1/left/left.aird b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/nodes1/left/left.aird
new file mode 100644
index 0000000..beb013f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/nodes1/left/left.aird
@@ -0,0 +1,78 @@
+<?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:nodes="http://www.eclipse.org/emf/compare/tests/nodes" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/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="_D3wqUIR_EeqXVMi-NXD3_g" selectedViews="_N7BpsJaAEeq0_dEE9gunOw" version="14.3.0.201909031200">
+    <semanticResources>left.nodes</semanticResources>
+    <ownedViews xmi:type="viewpoint:DView" uid="_N7BpsJaAEeq0_dEE9gunOw">
+      <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']"/>
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_RDsDwJaAEeq0_dEE9gunOw" name="Nodes1 Diagram" repPath="#_RB1CkJaAEeq0_dEE9gunOw" changeId="8ecb7706-8110-4fac-bc3d-d2ad86d97053">
+        <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']"/>
+        <target xmi:type="nodes:Node" href="left.nodes#_KUSB0IR_EeqXVMi-NXD3_g"/>
+      </ownedRepresentationDescriptors>
+    </ownedViews>
+  </viewpoint:DAnalysis>
+  <diagram:DSemanticDiagram uid="_RB1CkJaAEeq0_dEE9gunOw">
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_RDmkMJaAEeq0_dEE9gunOw" source="DANNOTATION_CUSTOMIZATION_KEY">
+      <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_RDnLQJaAEeq0_dEE9gunOw"/>
+    </ownedAnnotationEntries>
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_REVkAJaAEeq0_dEE9gunOw" source="GMF_DIAGRAMS">
+      <data xmi:type="notation:Diagram" xmi:id="_REVkAZaAEeq0_dEE9gunOw" type="Sirius" element="_RB1CkJaAEeq0_dEE9gunOw" measurementUnit="Pixel">
+        <children xmi:type="notation:Node" xmi:id="_REsJUJaAEeq0_dEE9gunOw" type="2002" element="_RDQl8JaAEeq0_dEE9gunOw">
+          <children xmi:type="notation:Node" xmi:id="_RE16UJaAEeq0_dEE9gunOw" type="5006"/>
+          <children xmi:type="notation:Node" xmi:id="_RE3vgJaAEeq0_dEE9gunOw" type="7001">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_RE3vgZaAEeq0_dEE9gunOw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_RE3vgpaAEeq0_dEE9gunOw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_REsJUZaAEeq0_dEE9gunOw" fontName="Segoe UI" fontHeight="12"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_REsJUpaAEeq0_dEE9gunOw"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_RFA5cJaAEeq0_dEE9gunOw" type="2002" element="_RDgdkJaAEeq0_dEE9gunOw">
+          <children xmi:type="notation:Node" xmi:id="_RFBggJaAEeq0_dEE9gunOw" type="5006"/>
+          <children xmi:type="notation:Node" xmi:id="_RFBggZaAEeq0_dEE9gunOw" type="7001">
+            <children xmi:type="notation:Node" xmi:id="_RFDVsJaAEeq0_dEE9gunOw" type="3008" element="_RDhrsJaAEeq0_dEE9gunOw">
+              <children xmi:type="notation:Node" xmi:id="_RFD8wJaAEeq0_dEE9gunOw" type="5005"/>
+              <children xmi:type="notation:Node" xmi:id="_RFEj0JaAEeq0_dEE9gunOw" type="7002">
+                <styles xmi:type="notation:SortingStyle" xmi:id="_RFEj0ZaAEeq0_dEE9gunOw"/>
+                <styles xmi:type="notation:FilteringStyle" xmi:id="_RFEj0paAEeq0_dEE9gunOw"/>
+              </children>
+              <styles xmi:type="notation:ShapeStyle" xmi:id="_RFDVsZaAEeq0_dEE9gunOw" fontName="Segoe UI" fontHeight="12"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RFDVspaAEeq0_dEE9gunOw" x="30" y="29"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_RFBggpaAEeq0_dEE9gunOw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_RFBgg5aAEeq0_dEE9gunOw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_RFA5cZaAEeq0_dEE9gunOw" fontName="Segoe UI" fontHeight="12"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RFA5cpaAEeq0_dEE9gunOw" x="210"/>
+        </children>
+        <styles xmi:type="notation:DiagramStyle" xmi:id="_REVkApaAEeq0_dEE9gunOw"/>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedDiagramElements xmi:type="diagram:DNodeContainer" uid="_RDQl8JaAEeq0_dEE9gunOw" name="B">
+      <target xmi:type="nodes:Node" href="left.nodes#_SXK6MIR_EeqXVMi-NXD3_g"/>
+      <semanticElements xmi:type="nodes:Node" href="left.nodes#_SXK6MIR_EeqXVMi-NXD3_g"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_RDX6sJaAEeq0_dEE9gunOw" labelSize="12" borderSize="1" borderSizeComputationExpression="1">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']/@defaultLayer/@containerMappings[name='ND_Node']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']/@defaultLayer/@containerMappings[name='ND_Node']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeContainer" uid="_RDgdkJaAEeq0_dEE9gunOw" name="C">
+      <target xmi:type="nodes:Node" href="left.nodes#_UiKLEIR_EeqXVMi-NXD3_g"/>
+      <semanticElements xmi:type="nodes:Node" href="left.nodes#_UiKLEIR_EeqXVMi-NXD3_g"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_RDhEoJaAEeq0_dEE9gunOw" labelSize="12" borderSize="1" borderSizeComputationExpression="1">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']/@defaultLayer/@containerMappings[name='ND_Node']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']/@defaultLayer/@containerMappings[name='ND_Node']"/>
+      <ownedDiagramElements xmi:type="diagram:DNodeContainer" uid="_RDhrsJaAEeq0_dEE9gunOw" name="D">
+        <target xmi:type="nodes:Node" href="left.nodes#_oB79gIR_EeqXVMi-NXD3_g"/>
+        <semanticElements xmi:type="nodes:Node" href="left.nodes#_oB79gIR_EeqXVMi-NXD3_g"/>
+        <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_RDhrsZaAEeq0_dEE9gunOw" labelSize="12" borderSize="1" borderSizeComputationExpression="1">
+          <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']/@defaultLayer/@containerMappings[name='ND_Node']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']/@defaultLayer/@containerMappings[name='ND_Node']"/>
+      </ownedDiagramElements>
+    </ownedDiagramElements>
+    <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']"/>
+    <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_RCMO8JaAEeq0_dEE9gunOw"/>
+    <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']/@defaultLayer"/>
+    <target xmi:type="nodes:Node" href="left.nodes#_KUSB0IR_EeqXVMi-NXD3_g"/>
+  </diagram:DSemanticDiagram>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/nodes1/left/left.nodes b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/nodes1/left/left.nodes
new file mode 100644
index 0000000..b133be0
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/nodes1/left/left.nodes
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<nodes:Node xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes" xmi:id="_KUSB0IR_EeqXVMi-NXD3_g" name="A">
+  <containmentRef1 xmi:id="_SXK6MIR_EeqXVMi-NXD3_g" name="B"/>
+  <containmentRef1 xmi:id="_UiKLEIR_EeqXVMi-NXD3_g" name="C">
+    <containmentRef1 xmi:id="_oB79gIR_EeqXVMi-NXD3_g" name="D"/>
+  </containmentRef1>
+</nodes:Node>
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/nodes1/right/right.aird b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/nodes1/right/right.aird
new file mode 100644
index 0000000..e39ec88
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/nodes1/right/right.aird
@@ -0,0 +1,44 @@
+<?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:nodes="http://www.eclipse.org/emf/compare/tests/nodes" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/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="_D3wqUIR_EeqXVMi-NXD3_g" selectedViews="_N7BpsJaAEeq0_dEE9gunOw" version="14.3.0.201909031200">
+    <semanticResources>right.nodes</semanticResources>
+    <ownedViews xmi:type="viewpoint:DView" uid="_N7BpsJaAEeq0_dEE9gunOw">
+      <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']"/>
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_RDsDwJaAEeq0_dEE9gunOw" name="Nodes1 Diagram" repPath="#_RB1CkJaAEeq0_dEE9gunOw" changeId="7af842f9-82b9-4160-ab50-841e5b528c2d">
+        <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']"/>
+        <target xmi:type="nodes:Node" href="right.nodes#_KUSB0IR_EeqXVMi-NXD3_g"/>
+      </ownedRepresentationDescriptors>
+    </ownedViews>
+  </viewpoint:DAnalysis>
+  <diagram:DSemanticDiagram uid="_RB1CkJaAEeq0_dEE9gunOw">
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_RDmkMJaAEeq0_dEE9gunOw" source="DANNOTATION_CUSTOMIZATION_KEY">
+      <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_RDnLQJaAEeq0_dEE9gunOw"/>
+    </ownedAnnotationEntries>
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_REVkAJaAEeq0_dEE9gunOw" source="GMF_DIAGRAMS">
+      <data xmi:type="notation:Diagram" xmi:id="_REVkAZaAEeq0_dEE9gunOw" type="Sirius" element="_RB1CkJaAEeq0_dEE9gunOw" measurementUnit="Pixel">
+        <children xmi:type="notation:Node" xmi:id="_RFA5cJaAEeq0_dEE9gunOw" type="2002" element="_RDgdkJaAEeq0_dEE9gunOw">
+          <children xmi:type="notation:Node" xmi:id="_RFBggJaAEeq0_dEE9gunOw" type="5006"/>
+          <children xmi:type="notation:Node" xmi:id="_RFBggZaAEeq0_dEE9gunOw" type="7001">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_RFBggpaAEeq0_dEE9gunOw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_RFBgg5aAEeq0_dEE9gunOw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_RFA5cZaAEeq0_dEE9gunOw" fontName="Segoe UI" fontHeight="12"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RFA5cpaAEeq0_dEE9gunOw" x="210"/>
+        </children>
+        <styles xmi:type="notation:DiagramStyle" xmi:id="_REVkApaAEeq0_dEE9gunOw"/>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedDiagramElements xmi:type="diagram:DNodeContainer" uid="_RDgdkJaAEeq0_dEE9gunOw" name="C">
+      <target xmi:type="nodes:Node" href="right.nodes#_UiKLEIR_EeqXVMi-NXD3_g"/>
+      <semanticElements xmi:type="nodes:Node" href="right.nodes#_UiKLEIR_EeqXVMi-NXD3_g"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_RDhEoJaAEeq0_dEE9gunOw" labelSize="12" borderSize="1" borderSizeComputationExpression="1">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']/@defaultLayer/@containerMappings[name='ND_Node']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']/@defaultLayer/@containerMappings[name='ND_Node']"/>
+    </ownedDiagramElements>
+    <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']"/>
+    <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_RCMO8JaAEeq0_dEE9gunOw"/>
+    <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.compare.diagram.sirius.tests.design/description/nodes.odesign#//@ownedViewpoints[name='Nodes%20Design']/@ownedRepresentations[name='Nodes%20Diagram']/@defaultLayer"/>
+    <target xmi:type="nodes:Node" href="right.nodes#_KUSB0IR_EeqXVMi-NXD3_g"/>
+  </diagram:DSemanticDiagram>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/nodes1/right/right.nodes b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/nodes1/right/right.nodes
new file mode 100644
index 0000000..42479a1
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/data/nodes1/right/right.nodes
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<nodes:Node xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:nodes="http://www.eclipse.org/emf/compare/tests/nodes" xmi:id="_KUSB0IR_EeqXVMi-NXD3_g" name="A">
+  <containmentRef1 xmi:id="_UiKLEIR_EeqXVMi-NXD3_g" name="C"/>
+</nodes:Node>
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/internal/TestBug564680.java b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/internal/TestBug564680.java
new file mode 100644
index 0000000..c318f4d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/internal/TestBug564680.java
@@ -0,0 +1,216 @@
+/*******************************************************************************
+ * Copyright (c) 2020 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.diagram.ide.ui.sirius.internal;
+
+import static org.junit.Assert.assertNotNull;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.eclipse.emf.compare.Comparison;
+import org.eclipse.emf.compare.Diff;
+import org.eclipse.emf.compare.EMFCompare;
+import org.eclipse.emf.compare.diagram.ide.ui.internal.accessor.IDiagramNodeAccessor;
+import org.eclipse.emf.compare.diagram.ide.ui.sirius.data.IDEUISiriusInputData;
+import org.eclipse.emf.compare.diagram.internal.extensions.DiagramDiff;
+import org.eclipse.emf.compare.diagram.sirius.tests.AbstractSiriusTest;
+import org.eclipse.emf.compare.rcp.ui.mergeviewer.IMergeViewer.MergeViewerSide;
+import org.eclipse.emf.compare.scope.DefaultComparisonScope;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.junit.Test;
+
+/**
+ * This test is related to the bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=564680">564680.</a>
+ * 
+ * @author <a href="mailto:glenn.plouhinec@obeo.fr">Glenn Plouhinec</a>
+ */
+@SuppressWarnings("restriction")
+public class TestBug564680 extends AbstractSiriusTest {
+
+	/**
+	 * The input data.
+	 */
+	private IDEUISiriusInputData inputData = new IDEUISiriusInputData();
+
+	/**
+	 * The main comparison.
+	 */
+	private Comparison comparison;
+
+	/**
+	 * The scope of the comparison.
+	 */
+	private DefaultComparisonScope scope;
+
+	@Override
+	public DefaultComparisonScope getScope() {
+		return scope;
+	}
+
+	/**
+	 * Tests that diagrams owned by left and right accessors are not null after a merge from right to left of
+	 * elements added on the left side, and also after undo and redo actions.
+	 * 
+	 * @throws IOException
+	 *             Thrown if we could not access either this class' resource, or the file towards which
+	 *             <code>string</code> points.
+	 */
+	@Test
+	public void testAccessorsNotNullR2LElementsAdded() throws IOException {
+		Resource leftResource = inputData.getNodes1LeftRepresentation();
+		Resource rightResource = inputData.getNodes1RightRepresentation();
+		scope = new DefaultComparisonScope(leftResource, rightResource, null);
+		comparison = EMFCompare.builder().setPostProcessorRegistry(getPostProcessorRegistry()).build()
+				.compare(scope);
+		List<DiagramDiff> diagralDiffs = getDiagramDiffs(comparison.getDifferences());
+		List<DiagramDiff> dDiffs = new ArrayList<DiagramDiff>();
+		DiagramDiff firstDiff = diagralDiffs.get(0);
+		dDiffs.add(firstDiff);
+		IDiagramNodeAccessor accessorLeft = new SiriusDiffAccessor(firstDiff, MergeViewerSide.LEFT);
+		IDiagramNodeAccessor accessorRight = new SiriusDiffAccessor(firstDiff, MergeViewerSide.RIGHT);
+
+		mergeDiffsRightToLeft(dDiffs);
+		assertAccessorsDiagramNotNull(accessorLeft, accessorRight);
+
+		undo();
+		assertAccessorsDiagramNotNull(accessorLeft, accessorRight);
+
+		redo();
+		assertAccessorsDiagramNotNull(accessorLeft, accessorRight);
+	}
+
+	/**
+	 * Tests that diagrams owned by left and right accessors are not null after a merge from left to right of
+	 * elements added on the left side, and also after undo and redo actions.
+	 * 
+	 * @throws IOException
+	 *             Thrown if we could not access either this class' resource, or the file towards which
+	 *             <code>string</code> points.
+	 */
+	@Test
+	public void testAccessorsNotNullL2RElementsAdded() throws IOException {
+		Resource leftResource = inputData.getNodes1LeftRepresentation();
+		Resource rightResource = inputData.getNodes1RightRepresentation();
+		scope = new DefaultComparisonScope(leftResource, rightResource, null);
+		comparison = EMFCompare.builder().setPostProcessorRegistry(getPostProcessorRegistry()).build()
+				.compare(scope);
+		List<DiagramDiff> diagralDiffs = getDiagramDiffs(comparison.getDifferences());
+		List<DiagramDiff> dDiffs = new ArrayList<DiagramDiff>();
+		DiagramDiff firstDiff = diagralDiffs.get(0);
+		dDiffs.add(firstDiff);
+		IDiagramNodeAccessor accessorLeft = new SiriusDiffAccessor(firstDiff, MergeViewerSide.LEFT);
+		IDiagramNodeAccessor accessorRight = new SiriusDiffAccessor(firstDiff, MergeViewerSide.RIGHT);
+
+		mergeDiffsLeftToRight(dDiffs);
+		assertAccessorsDiagramNotNull(accessorLeft, accessorRight);
+
+		undo();
+		assertAccessorsDiagramNotNull(accessorLeft, accessorRight);
+
+		redo();
+		assertAccessorsDiagramNotNull(accessorLeft, accessorRight);
+	}
+
+	/**
+	 * Tests that diagrams owned by left and right accessors are not null after a merge from right to left of
+	 * elements deleted on the left side, and also after undo and redo actions.
+	 * 
+	 * @throws IOException
+	 *             Thrown if we could not access either this class' resource, or the file towards which
+	 *             <code>string</code> points.
+	 */
+	@Test
+	public void testAccessorsNotNullR2LElementsDeleted() throws IOException {
+		Resource leftResource = inputData.getNodes1LeftRepresentation();
+		Resource rightResource = inputData.getNodes1RightRepresentation();
+		scope = new DefaultComparisonScope(rightResource, leftResource, null);
+		comparison = EMFCompare.builder().setPostProcessorRegistry(getPostProcessorRegistry()).build()
+				.compare(scope);
+		List<DiagramDiff> diagralDiffs = getDiagramDiffs(comparison.getDifferences());
+		List<DiagramDiff> dDiffs = new ArrayList<DiagramDiff>();
+		DiagramDiff firstDiff = diagralDiffs.get(0);
+		dDiffs.add(firstDiff);
+		IDiagramNodeAccessor accessorLeft = new SiriusDiffAccessor(firstDiff, MergeViewerSide.LEFT);
+		IDiagramNodeAccessor accessorRight = new SiriusDiffAccessor(firstDiff, MergeViewerSide.RIGHT);
+
+		mergeDiffsRightToLeft(dDiffs);
+		assertAccessorsDiagramNotNull(accessorLeft, accessorRight);
+
+		undo();
+		assertAccessorsDiagramNotNull(accessorLeft, accessorRight);
+
+		redo();
+		assertAccessorsDiagramNotNull(accessorLeft, accessorRight);
+	}
+
+	/**
+	 * Tests that diagrams owned by left and right accessors are not null after a merge from left to right of
+	 * elements deleted on the left side, and also after undo and redo actions.
+	 * 
+	 * @throws IOException
+	 *             Thrown if we could not access either this class' resource, or the file towards which
+	 *             <code>string</code> points.
+	 */
+	@Test
+	public void testAccessorsNotNullL2RElementsDeleted() throws IOException {
+		Resource leftResource = inputData.getNodes1LeftRepresentation();
+		Resource rightResource = inputData.getNodes1RightRepresentation();
+		scope = new DefaultComparisonScope(rightResource, leftResource, null);
+		comparison = EMFCompare.builder().setPostProcessorRegistry(getPostProcessorRegistry()).build()
+				.compare(scope);
+		List<DiagramDiff> diagralDiffs = getDiagramDiffs(comparison.getDifferences());
+		List<DiagramDiff> dDiffs = new ArrayList<DiagramDiff>();
+		DiagramDiff firstDiff = diagralDiffs.get(0);
+		dDiffs.add(firstDiff);
+		IDiagramNodeAccessor accessorLeft = new SiriusDiffAccessor(firstDiff, MergeViewerSide.LEFT);
+		IDiagramNodeAccessor accessorRight = new SiriusDiffAccessor(firstDiff, MergeViewerSide.RIGHT);
+
+		mergeDiffsLeftToRight(dDiffs);
+		assertAccessorsDiagramNotNull(accessorLeft, accessorRight);
+
+		undo();
+		assertAccessorsDiagramNotNull(accessorLeft, accessorRight);
+
+		redo();
+		assertAccessorsDiagramNotNull(accessorLeft, accessorRight);
+	}
+
+	/**
+	 * Ensures that diagrams owned by given accessors are not null.
+	 * 
+	 * @param accessorLeft
+	 *            the first accessor.
+	 * @param accessorRight
+	 *            the second accessor.
+	 */
+	private static void assertAccessorsDiagramNotNull(IDiagramNodeAccessor accessorLeft,
+			IDiagramNodeAccessor accessorRight) {
+		assertNotNull(accessorLeft.getOwnedDiagram());
+		assertNotNull(accessorRight.getOwnedDiagram());
+	}
+
+	/**
+	 * Provides access to DiagramDiff that exist in the difference list.
+	 * 
+	 * @param differences
+	 *            the list of differences
+	 * @return the list of DiagramDiff.
+	 */
+	private List<DiagramDiff> getDiagramDiffs(List<Diff> differences) {
+		Stream<DiagramDiff> siriusDiffs = differences.stream().filter(diff -> diff instanceof DiagramDiff)
+				.map(DiagramDiff.class::cast);
+		return siriusDiffs.collect(Collectors.toList());
+	}
+
+}
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/tests/suite/AllTests.java b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/tests/suite/AllTests.java
new file mode 100644
index 0000000..cc5a546
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/tests/suite/AllTests.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2020 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.diagram.ide.ui.sirius.tests.suite;
+
+import org.eclipse.emf.compare.ComparePackage;
+import org.eclipse.emf.compare.tests.nodes.NodesPackage;
+import org.eclipse.emf.compare.tests.nodes.util.NodesResourceFactoryImpl;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * This class is used to run all the test classes of the
+ * <code>org.eclipse.emf.compare.diagram.ide.ui.sirius.tests</code> project.
+ * 
+ * @author <a href="mailto:glenn.plouhinec@obeo.fr">Glenn Plouhinec</a>
+ */
+@RunWith(Suite.class)
+@SuiteClasses({BugsTestSuite.class })
+public class AllTests {
+
+	/**
+	 * Used to fill EMF registers.
+	 */
+	@BeforeClass
+	public static void fillEMFRegistries() {
+		EPackage.Registry.INSTANCE.put(ComparePackage.eNS_URI, ComparePackage.eINSTANCE);
+		EPackage.Registry.INSTANCE.put(NodesPackage.eNS_URI, NodesPackage.eINSTANCE);
+
+		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("nodes", //$NON-NLS-1$
+				new NodesResourceFactoryImpl());
+	}
+}
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/tests/suite/BugsTestSuite.java b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/tests/suite/BugsTestSuite.java
new file mode 100644
index 0000000..0d93a72
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius.tests/src/org/eclipse/emf/compare/diagram/ide/ui/sirius/tests/suite/BugsTestSuite.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2020 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.diagram.ide.ui.sirius.tests.suite;
+
+import org.eclipse.emf.compare.diagram.ide.ui.sirius.internal.TestBug564680;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * This class is used to run all the bugfix test classes of the
+ * <code>org.eclipse.emf.compare.diagram.ide.ui.sirius.tests</code> project.
+ * 
+ * @author <a href="mailto:glenn.plouhinec@obeo.fr">Glenn Plouhinec</a>
+ */
+@RunWith(Suite.class)
+@SuiteClasses({TestBug564680.class })
+public class BugsTestSuite {
+
+}
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui/src/org/eclipse/emf/compare/diagram/ide/ui/internal/accessor/DiagramDiffAccessorImpl.java b/plugins/org.eclipse.emf.compare.diagram.ide.ui/src/org/eclipse/emf/compare/diagram/ide/ui/internal/accessor/DiagramDiffAccessorImpl.java
index 1d4104c..4c57874 100644
--- a/plugins/org.eclipse.emf.compare.diagram.ide.ui/src/org/eclipse/emf/compare/diagram/ide/ui/internal/accessor/DiagramDiffAccessorImpl.java
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui/src/org/eclipse/emf/compare/diagram/ide/ui/internal/accessor/DiagramDiffAccessorImpl.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2013, 2015 Obeo.
+ * Copyright (c) 2013, 2020 Obeo.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -70,8 +70,9 @@
 		Match eObjectMatch = fComparison.getMatch(obj);
 		if (eObjectMatch != null) {
 			return getEObject(eObjectMatch, side);
+		} else {
+			return super.getEObject(side);
 		}
-		return null;
 	}
 
 }
diff --git a/plugins/org.eclipse.emf.compare.diagram.sirius.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.diagram.sirius.tests/META-INF/MANIFEST.MF
index baed06a..a92a4e2 100644
--- a/plugins/org.eclipse.emf.compare.diagram.sirius.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.diagram.sirius.tests/META-INF/MANIFEST.MF
@@ -19,3 +19,4 @@
  org.eclipse.emf.compare.rcp,
  org.eclipse.emf.compare.edit,
  org.eclipse.emf.compare.ide.ui.tests
+Export-Package: org.eclipse.emf.compare.diagram.sirius.tests