From 1c958612233cfed163939ac2bdc1b00ea7cc8f7b Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Tue, 13 Sep 2011 20:15:32 +0000
Subject: [PATCH] LMS-2436 Implemented test

SVN: 22927
---
 .../AbstractJythonDataSetHandlerTest.java     | 19 +++++++++++++++++++
 .../JythonTopLevelDataSetRegistratorTest.java |  1 +
 .../registrator/dynamic-query-failure-test.py |  4 ++++
 3 files changed, 24 insertions(+)

diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/AbstractJythonDataSetHandlerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/AbstractJythonDataSetHandlerTest.java
index 89db4e3fc46..44047956024 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/AbstractJythonDataSetHandlerTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/AbstractJythonDataSetHandlerTest.java
@@ -50,6 +50,7 @@ import ch.systemsx.cisd.etlserver.ITypeExtractor;
 import ch.systemsx.cisd.etlserver.ThreadParameters;
 import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState;
 import ch.systemsx.cisd.etlserver.registrator.JythonTopLevelDataSetHandler.JythonDataSetRegistrationService;
+import ch.systemsx.cisd.etlserver.registrator.api.v1.SecondaryTransactionFailure;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.DataSetRegistrationTransaction;
 import ch.systemsx.cisd.etlserver.validation.IDataSetValidator;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
@@ -347,6 +348,8 @@ public abstract class AbstractJythonDataSetHandlerTest extends AbstractFileSyste
 
         protected boolean didCommitTransactionFunctionRunHappen = false;
 
+        protected boolean didSecondaryTransactionErrorNotificationHappen = false;
+
         public TestingDataSetHandler(TopLevelDataSetRegistratorGlobalState globalState,
                 boolean shouldRegistrationFail, boolean shouldReThrowRollbackException)
         {
@@ -459,6 +462,22 @@ public abstract class AbstractJythonDataSetHandlerTest extends AbstractFileSyste
                     interpreter.get("didTransactionCommitHappen", Boolean.class);
         }
 
+        @Override
+        public void didEncounterSecondaryTransactionErrors(
+                DataSetRegistrationService<DataSetInformation> service,
+                DataSetRegistrationTransaction<DataSetInformation> transaction,
+                List<SecondaryTransactionFailure> secondaryErrors)
+        {
+            super.didEncounterSecondaryTransactionErrors(service, transaction, secondaryErrors);
+
+            PythonInterpreter interpreter =
+                    ((JythonDataSetRegistrationService<DataSetInformation>) service)
+                            .getInterpreter();
+            didSecondaryTransactionErrorNotificationHappen =
+                    interpreter
+                            .get("didSecondaryTransactionErrorNotificationHappen", Boolean.class);
+        }
+
         @Override
         protected JythonDataSetRegistrationService<DataSetInformation> createJythonDataSetRegistrationService(
                 File aDataSetFile, DataSetInformation userProvidedDataSetInformationOrNull,
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 233845f2c9d..f924f70ae05 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
@@ -796,6 +796,7 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH
         TestingDataSetHandler theHandler = (TestingDataSetHandler) handler;
         assertFalse(didServiceRollbackHappen);
         assertFalse(theHandler.didTransactionRollbackHappen);
+        assertTrue(theHandler.didSecondaryTransactionErrorNotificationHappen);
         context.assertIsSatisfied();
     }
 
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/dynamic-query-failure-test.py b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/dynamic-query-failure-test.py
index 2e52815bdc0..8b08879e2d0 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/dynamic-query-failure-test.py
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/dynamic-query-failure-test.py
@@ -1,5 +1,9 @@
 import sys
 
+def did_encounter_secondary_transaction_errors(service, transaction, errors):
+    global didSecondaryTransactionErrorNotificationHappen
+    didSecondaryTransactionErrorNotificationHappen = True
+
 # Execute a query
 tr = service.transaction()
 query = tr.getDatabaseQuery("path-info-db")
-- 
GitLab