diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/TrashBOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/TrashBOTest.java
index 4b927a679548c9c1ec45985b80d2b05fb48f8ebc..0b7208b8f52dd4f392478a41092369f5465ee6f7 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/TrashBOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/TrashBOTest.java
@@ -161,8 +161,10 @@ public final class TrashBOTest extends AbstractBOTest
                     List<TechId> sampleIds = TechId.createList(50, 51);
                     one(sampleDAO).listSampleIdsByExperimentIds(experimentIds);
                     will(returnValue(sampleIds));
-                    one(deletionDAO).trash(EntityKind.SAMPLE, new ArrayList<TechId>(sampleIds),
-                            deletion);
+                    RecordingMatcher<List<TechId>> sampleIdsMatcher =
+                            new RecordingMatcher<List<TechId>>();
+                    one(deletionDAO).trash(with(same(EntityKind.SAMPLE)), with(sampleIdsMatcher),
+                            with(same(deletion)));
                     will(returnValue(0));
 
                     // trash dependent data sets
@@ -183,6 +185,10 @@ public final class TrashBOTest extends AbstractBOTest
         final DeletionPE deletion = createDeletion();
         final List<TechId> experimentIds = EXAMPLE_ID_LIST;
         final List<TechId> sampleIds = TechId.createList(50, 51);
+        final RecordingMatcher<List<TechId>> dataSetIdsMatcher =
+                new RecordingMatcher<List<TechId>>();
+        final List<TechId> dataSetIds = TechId.createList(60, 61);
+
         context.checking(new Expectations()
             {
                 {
@@ -194,15 +200,17 @@ public final class TrashBOTest extends AbstractBOTest
                     will(returnValue(sampleIds));
 
                     // trash dependent data sets
-                    List<TechId> dataSetIds = TechId.createList(60, 61);
                     one(dataDAO).listDataSetIdsByExperimentIds(experimentIds);
                     will(returnValue(dataSetIds));
-                    one(deletionDAO).trash(EntityKind.DATA_SET, dataSetIds, deletion);
+
+                    one(deletionDAO).trash(with(same(EntityKind.DATA_SET)),
+                            with(dataSetIdsMatcher), with(same(deletion)));
                     will(returnValue(dataSetIds.size()));
                 }
             });
         prepareDeletionOfSamplesWithDependencies(deletion, sampleIds);
         trashBO.trashExperiments(experimentIds);
+        verifyRecordedLists(dataSetIds, dataSetIdsMatcher);
         context.assertIsSatisfied();
     }
 
@@ -238,13 +246,17 @@ public final class TrashBOTest extends AbstractBOTest
         context.checking(new Expectations()
             {
                 {
-                    one(deletionDAO).trash(EntityKind.SAMPLE, sampleIds, deletion);
+                    RecordingMatcher<List<TechId>> sampleIdsMatcher =
+                            new RecordingMatcher<List<TechId>>();
+
+                    one(deletionDAO).trash(with(same(EntityKind.SAMPLE)), with(sampleIdsMatcher),
+                            with(same(deletion)));
                     will(returnValue(sampleIds.size()));
 
                     // trash dependent children
                     List<TechId> childrenIds = TechId.createList(50, 51);
                     Set<TechId> childrenIdSet = new HashSet<TechId>(childrenIds);
-                    one(sampleDAO).listSampleIdsByParentIds(sampleIds);
+                    one(sampleDAO).listSampleIdsByParentIds(with(sampleIdsMatcher));
                     will(returnValue(childrenIdSet));
                     one(deletionDAO).trash(EntityKind.SAMPLE, new ArrayList<TechId>(childrenIdSet),
                             deletion);
@@ -252,16 +264,22 @@ public final class TrashBOTest extends AbstractBOTest
 
                     // trash dependent components
                     List<TechId> componentIds = TechId.createList(60, 61);
-                    one(sampleDAO).listSampleIdsByContainerIds(sampleIds);
+                    one(sampleDAO).listSampleIdsByContainerIds(with(sampleIdsMatcher));
                     will(returnValue(componentIds));
-                    one(deletionDAO).trash(EntityKind.SAMPLE, componentIds, deletion);
+                    RecordingMatcher<List<TechId>> componentIdsMatcher =
+                            new RecordingMatcher<List<TechId>>();
+                    one(deletionDAO).trash(with(same(EntityKind.SAMPLE)),
+                            with(componentIdsMatcher), with(same(deletion)));
                     will(returnValue(0));
 
                     // trash dependent data sets
                     List<TechId> dataSetIds = TechId.createList(70, 71, 72);
-                    one(dataDAO).listDataSetIdsBySampleIds(sampleIds);
+                    one(dataDAO).listDataSetIdsBySampleIds(with(sampleIdsMatcher));
                     will(returnValue(dataSetIds));
-                    one(deletionDAO).trash(EntityKind.DATA_SET, dataSetIds, deletion);
+                    RecordingMatcher<List<TechId>> dataSetIdsMatcher =
+                            new RecordingMatcher<List<TechId>>();
+                    one(deletionDAO).trash(with(same(EntityKind.DATA_SET)),
+                            with(dataSetIdsMatcher), with(same(deletion)));
                     will(returnValue(2));
                 }
             });
@@ -283,4 +301,13 @@ public final class TrashBOTest extends AbstractBOTest
         context.assertIsSatisfied();
     }
 
+    private static void verifyRecordedLists(List<TechId> expected,
+            RecordingMatcher<List<TechId>> matcher)
+    {
+        for (List<TechId> recorded : matcher.getRecordedObjects())
+        {
+            assertTrue(recorded.containsAll(expected));
+            assertTrue(expected.containsAll(recorded));
+        }
+    }
 }
\ No newline at end of file