diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/EntityValidationTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/EntityValidationTest.java
index 8702fda1f0a3500c56d07aad19a11ae29db8ccec..d8154735348dfff71abed7c6d395366adf867f69 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/EntityValidationTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/EntityValidationTest.java
@@ -19,10 +19,12 @@ package ch.systemsx.cisd.openbis.systemtest.plugin.generic;
 import static org.testng.AssertJUnit.assertTrue;
 import static org.testng.AssertJUnit.fail;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -35,10 +37,19 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewMaterial;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewProject;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSpace;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Script;
+import ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetBatchUpdatesDTO;
+import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentUpdatesDTO;
+import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialUpdateDTO;
+import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SampleUpdatesDTO;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
@@ -69,6 +80,13 @@ public class EntityValidationTest extends GenericSystemTestCase
     }
 
     private void registerNewSample(String identifier, String type, String experimentIdentifierOrNull)
+    {
+        final NewSample newSample = prepareNewSample(identifier, type, experimentIdentifierOrNull);
+        genericClientService.registerSample(systemSessionToken, newSample);
+    }
+
+    private NewSample prepareNewSample(String identifier, String type,
+            String experimentIdentifierOrNull)
     {
         final NewSample newSample = new NewSample();
         newSample.setIdentifier(identifier);
@@ -79,7 +97,7 @@ public class EntityValidationTest extends GenericSystemTestCase
         {
             newSample.setExperimentIdentifier(experimentIdentifierOrNull);
         }
-        genericClientService.registerSample(systemSessionToken, newSample);
+        return newSample;
     }
 
     @BeforeMethod
@@ -144,6 +162,35 @@ public class EntityValidationTest extends GenericSystemTestCase
                 DeletionType.PERMANENT);
     }
 
+    @Test
+    public void testPerformEntityOperation()
+    {
+        NewSample sample = prepareNewSample("/TEST-SPACE/NEV-TEST", "NORMAL", null);
+        sample.setParents("EV-PARENT-NORMAL");
+        performSampleCreation(sample);
+    }
+
+    private void performSampleCreation(NewSample sampleToCreate)
+    {
+        List<NewSpace> spaceRegistrations = Collections.emptyList();
+        List<NewProject> projectRegistrations = Collections.emptyList();
+        List<NewExperiment> experimentRegistrations = Collections.emptyList();
+        List<ExperimentUpdatesDTO> experimentUpdates =
+                Collections.<ExperimentUpdatesDTO> emptyList();
+        List<SampleUpdatesDTO> sampleUpdates = Collections.emptyList();
+        List<NewSample> sampleRegistrations = Arrays.asList(sampleToCreate);
+        Map<String, List<NewMaterial>> materialRegistrations = Collections.emptyMap();
+        List<MaterialUpdateDTO> materialUpdates = Collections.emptyList();
+        List<? extends NewExternalData> dataSetRegistrations = Collections.emptyList();
+        List<DataSetBatchUpdatesDTO> dataSetUpdates = Collections.emptyList();
+        AtomicEntityOperationDetails details =
+                new AtomicEntityOperationDetails(null, null, spaceRegistrations,
+                        projectRegistrations, experimentRegistrations, experimentUpdates,
+                        sampleUpdates, sampleRegistrations, materialRegistrations, materialUpdates,
+                        dataSetRegistrations, dataSetUpdates);
+        etlService.performEntityOperations(systemSessionToken, details);
+    }
+
     @Test
     public void testSampleUpdateTriggerValidationOfParentsChildren()
     {