diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/AbstractAssignmentSampleToExperimentTestCase.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/AbstractAssignmentSampleToExperimentTestCase.java
index 6bb816e001df8bfd0e2bd98e91fd6c528325e9e3..e61761c8e71a9c91351b389dde5553d6441ad5ea 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/AbstractAssignmentSampleToExperimentTestCase.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/AbstractAssignmentSampleToExperimentTestCase.java
@@ -240,6 +240,71 @@ public abstract class AbstractAssignmentSampleToExperimentTestCase extends BaseT
         assertUnmodified(g);
     }
     
+    @Test
+    public void assignSampleWithExperimentWithDataSetWithComponentFromAnotherExperimentToExperiment()
+    {
+        EntityGraphGenerator g = parseAndCreateGraph("E1, samples: S1, data sets: DS1\n"
+                + "E2, data sets: DS2\n"
+                + "E3\n"
+                + "S1, data sets: DS1\n"
+                + "DS1, components: DS2");
+        
+        reassignSampleToExperiment(g.s(1), g.e(3));
+        
+        assertEquals("E2, data sets: DS2\n"
+                + "E3, samples: S1, data sets: DS1\n"
+                + "S1, data sets: DS1\n"
+                + "DS1, components: DS2\n", renderGraph(g));
+        assertModified(g.e(1), g.e(3));
+        assertModified(g.s(1));
+        assertModified(g.ds(1));
+        assertUnmodified(g);
+    }
+    
+    @Test
+    public void assignSampleWithExperimentWithDataSetWithContainerFromAnotherSampleButSameExperimentToExperiment()
+    {
+        EntityGraphGenerator g = parseAndCreateGraph("E1, samples: S1 S2, data sets: DS1 DS2\n"
+                + "E2\n"
+                + "S1, data sets: DS1\n"
+                + "S2, data sets: DS2\n"
+                + "DS1, components: DS2");
+        
+        reassignSampleToExperiment(g.s(2), g.e(2));
+        
+        assertEquals("E1, samples: S1, data sets: DS1\n"
+                + "E2, samples: S2, data sets: DS2\n"
+                + "S1, data sets: DS1\n"
+                + "S2, data sets: DS2\n"
+                + "DS1, components: DS2\n", renderGraph(g));
+        assertModified(g.e(1), g.e(2));
+        assertModified(g.s(2));
+        assertModified(g.ds(2));
+        assertUnmodified(g);
+    }
+    
+    @Test
+    public void assignSampleWithExperimentWithDataSetWithComponentFromAnotherSampleButSameExperimentToExperiment()
+    {
+        EntityGraphGenerator g = parseAndCreateGraph("E1, samples: S1 S2, data sets: DS1 DS2\n"
+                + "E2\n"
+                + "S1, data sets: DS1\n"
+                + "S2, data sets: DS2\n"
+                + "DS1, components: DS2");
+        
+        reassignSampleToExperiment(g.s(1), g.e(2));
+        
+        assertEquals("E1, samples: S2, data sets: DS2\n"
+                + "E2, samples: S1, data sets: DS1\n"
+                + "S1, data sets: DS1\n"
+                + "S2, data sets: DS2\n"
+                + "DS1, components: DS2\n", renderGraph(g));
+        assertModified(g.e(1), g.e(2));
+        assertModified(g.s(1));
+        assertModified(g.ds(1));
+        assertUnmodified(g);
+    }
+    
     @Test
     public void assignScreeningPlateToExperiment()
     {