From a73c1deefc7e5faa909721ba8b0bc3e512428ce9 Mon Sep 17 00:00:00 2001
From: jakubs <jakubs>
Date: Mon, 21 May 2012 12:30:56 +0000
Subject: [PATCH] SP-45, BIS-21 add the test to the registration without any
 dataset

SVN: 25312
---
 .../JythonTopLevelDataSetRegistratorTest.java | 48 +++++++++++++++++--
 .../registrator/v2-testcase-no-dataset.py     |  4 ++
 2 files changed, 49 insertions(+), 3 deletions(-)
 create mode 100644 datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-no-dataset.py

diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetRegistratorTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetRegistratorTest.java
index 5999afd1f66..cc6266eb56a 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetRegistratorTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetRegistratorTest.java
@@ -536,7 +536,7 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH
                 protected void setupExpectations()
                 {
                     generalAllowing();
-                    
+
                     if (testCase.failurePoint != null
                             && testCase.failurePoint
                                     .compareTo(TestCaseParameters.FailurePoint.DURING_OPENBIS_REGISTRATION) < 0)
@@ -595,9 +595,10 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH
                 private void generalAllowing()
                 {
                     allowing(storageRecoveryManager).getProcessingMarkerFile(with(any(File.class)));
-                    will(returnValue(new File(incomingDataSetFile.getAbsolutePath()+".NON_EXISTING")));
+                    will(returnValue(new File(incomingDataSetFile.getAbsolutePath()
+                            + ".NON_EXISTING")));
                 }
-                
+
                 @SuppressWarnings("unchecked")
                 private void cleanRecoveryCheckpoint(boolean required)
                 {
@@ -1275,6 +1276,47 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH
         context.assertIsSatisfied();
     }
 
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testImportWithoutDataSet()
+    {
+        initializeStorageRecoveryManagerMock();
+
+        setUpHomeDataBaseExpectations();
+        Properties threadProperties =
+                createThreadPropertiesRelativeToScriptsFolder("v2-testcase-no-dataset.py");
+        threadProperties.put("TEST_V2_API", "");
+        createHandler(threadProperties, false, true);
+
+        createData();
+
+        context.checking(new Expectations()
+            {
+                {
+                    allowing(storageRecoveryManager).getProcessingMarkerFile(incomingDataSetFile);
+                    will(returnValue(new File(incomingDataSetFile.getParent(), "a_marker_file")));
+
+                    one(storageRecoveryManager).checkpointPrecommittedState(
+                            with(any(DataSetStorageAlgorithmRunner.class)));
+
+                    oneOf(openBisService)
+                            .performEntityOperations(
+                                    with(any(ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails.class)));
+               
+                    oneOf(storageRecoveryManager).registrationCompleted(
+                            with(any(DataSetStorageAlgorithmRunner.class)));
+                }
+            });
+
+        handler.handle(markerFile);
+
+        assertFalse(handler.getExpectations().didServiceRollbackHappen);
+        assertFalse(handler.getExpectations().didTransactionRollbackHappen);
+        assertFalse(handler.getExpectations().didRollbackServiceFunctionRun);
+
+        context.assertIsSatisfied();
+    }
+
     @Test
     public void testQuerying()
     {
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-no-dataset.py b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-no-dataset.py
new file mode 100644
index 00000000000..471eeb9d9e4
--- /dev/null
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-no-dataset.py
@@ -0,0 +1,4 @@
+execfile("sourceTest/java/ch/systemsx/cisd/etlserver/registrator/all-hooks.py")
+
+def process():
+    mat = transaction.createNewMaterial("JTDH2_TEST", "GENE")
\ No newline at end of file
-- 
GitLab