From 902fa03483e7bfad0edb12c22beb10e405fb18cc Mon Sep 17 00:00:00 2001
From: jakubs <jakubs>
Date: Mon, 21 May 2012 08:48:13 +0000
Subject: [PATCH] SP-45, BIS-21 add test to check if file is present in the
 store after succesfull recovery

SVN: 25300
---
 .../AbstractJythonDataSetHandlerTest.java     | 36 ++++++++++++++
 .../JythonDropboxRecoveryTest.java            | 48 +++++++++----------
 .../JythonTopLevelDataSetRegistratorTest.java | 33 -------------
 3 files changed, 58 insertions(+), 59 deletions(-)

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 1d5da8f7cbc..da2c9418b77 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
@@ -37,6 +37,7 @@ import org.testng.annotations.BeforeTest;
 import ch.systemsx.cisd.base.exceptions.IOExceptionUnchecked;
 import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
 import ch.systemsx.cisd.common.filesystem.FileOperations;
+import ch.systemsx.cisd.common.filesystem.FileUtilities;
 import ch.systemsx.cisd.common.filesystem.QueueingPathRemoverService;
 import ch.systemsx.cisd.common.mail.IMailClient;
 import ch.systemsx.cisd.common.utilities.ExtendedProperties;
@@ -48,8 +49,11 @@ import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState;
 import ch.systemsx.cisd.etlserver.validation.IDataSetValidator;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IDataSourceQueryService;
+import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DatasetLocationUtil;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
+import ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails;
+import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.dto.StorageFormat;
 
 /**
@@ -398,5 +402,37 @@ public abstract class AbstractJythonDataSetHandlerTest extends AbstractFileSyste
                 };
         }
     }
+    
+    protected void assertStorageProcess(AtomicEntityOperationDetails recordedObject,
+            String dataSetCode, String dataSetDirectory, int testId)
+    {
+        assertEquals(1, recordedObject.getDataSetRegistrations().size());
+
+        NewExternalData dataSet = recordedObject.getDataSetRegistrations().get(0);
+
+        assertEquals(dataSetCode, dataSet.getCode());
+        assertEquals(DATA_SET_TYPE, dataSet.getDataSetType());
+
+        File datasetLocation =
+                DatasetLocationUtil.getDatasetLocationPath(workingDirectory, dataSetCode,
+                        ch.systemsx.cisd.openbis.dss.generic.shared.Constants.DEFAULT_SHARE_ID,
+                        DATABASE_INSTANCE_UUID);
 
+        assertEquals(FileUtilities.getRelativeFilePath(new File(workingDirectory,
+                ch.systemsx.cisd.openbis.dss.generic.shared.Constants.DEFAULT_SHARE_ID),
+                datasetLocation), dataSet.getLocation());
+
+        assertEquals(new File(stagingDirectory, dataSetCode + "-storage"),
+                MockStorageProcessor.instance.rootDirs.get(testId));
+
+        File incomingDir = MockStorageProcessor.instance.incomingDirs.get(testId);
+
+        assertEquals(new File(new File(stagingDirectory, dataSetCode), dataSetDirectory),
+                incomingDir);
+
+        assertEquals("hello world" + (testId + 1),
+                FileUtilities
+                        .loadToString(new File(datasetLocation, "read" + (testId + 1) + ".me"))
+                        .trim());
+    }
 }
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonDropboxRecoveryTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonDropboxRecoveryTest.java
index 30c2c113673..2683a3e76de 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonDropboxRecoveryTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonDropboxRecoveryTest.java
@@ -26,7 +26,6 @@ import java.util.List;
 import java.util.Properties;
 
 import org.jmock.Expectations;
-import org.python.antlr.ast.AssertDerived;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
@@ -154,23 +153,23 @@ public class JythonDropboxRecoveryTest extends AbstractJythonDataSetHandlerTest
 
             handler.handle(recoveryMarkerFile);
 
-            //if failure happened here then don't expect recovery / marker files to be deleted
-            
-            if (testCase.registrationSuccessful )
+            // if failure happened here then don't expect recovery / marker files to be deleted
+
+            if (testCase.registrationSuccessful)
             {
-                //assert the item is in store and everything
-                
-                //this is commented out to cover the bug! beware
-               // assertDirEmpty(stagingDirectory);
-               // assertDirEmpty(precommitDirectory);
-            }
-            else 
+                //item in store
+                assertStorageProcess(atomicatOperationDetails.recordedObject(), DATA_SET_CODE,
+                        "sub_data_set_1", 0);
+                //FIXME: this is commented out to cover the bug! beware
+                // assertDirEmpty(stagingDirectory);
+                assertDirEmpty(precommitDirectory);
+            } else
             {
                 assertDirEmpty(stagingDirectory);
                 assertDirEmpty(precommitDirectory);
-                //nothing is is store, all is cleared
+                // nothing is is store, all is cleared
             }
-            
+
             assertNoOriginalMarkerFileExists();
             assertNoRecoveryMarkerFile();
         } else
@@ -189,17 +188,13 @@ public class JythonDropboxRecoveryTest extends AbstractJythonDataSetHandlerTest
         // we continue with the recovery
 
     }
-
-    private void assertDirEmpty(File file)
-    {
-        assertEquals("[]", Arrays.asList(file.list()).toString());
-    }
     
-    private void assertDirNonEmpty(File file)
+    private void assertDirEmpty(File file)
     {
-        assertTrue(file.list().length > 0 );
+     String   contents = file.getAbsolutePath();
+        assertEquals(contents, "[]", Arrays.asList(file.list()).toString());
     }
-    
+
     private void assertOriginalMarkerFileExists()
     {
         assertTrue(
@@ -209,9 +204,7 @@ public class JythonDropboxRecoveryTest extends AbstractJythonDataSetHandlerTest
 
     private void assertNoOriginalMarkerFileExists()
     {
-        assertFalse(
-                "The original registration marker file should be deleted",
-                markerFile.exists());
+        assertFalse("The original registration marker file should be deleted", markerFile.exists());
     }
 
     private File assertRecoveryMarkerFile()
@@ -303,7 +296,9 @@ public class JythonDropboxRecoveryTest extends AbstractJythonDataSetHandlerTest
             Exception e;
             if (testCase.canRecoverFromError)
             {
-                e = new EnvironmentFailureException("Potentially recoverable failure in registration");
+                e =
+                        new EnvironmentFailureException(
+                                "Potentially recoverable failure in registration");
             } else
             {
                 e = new UserFailureException("Unrecoverable failure in registration");
@@ -313,7 +308,8 @@ public class JythonDropboxRecoveryTest extends AbstractJythonDataSetHandlerTest
 
         }
 
-        @SuppressWarnings({ "rawtypes", "unchecked" })
+        @SuppressWarnings(
+            { "rawtypes", "unchecked" })
         protected void checkRegistrationSucceeded()
         {
             one(openBisService).listDataSetsByCode(Arrays.asList(DATA_SET_CODE));
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 5fa077addc9..63945836829 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
@@ -741,39 +741,6 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH
         assertEquals(dataSetsStoredInIncomingDir, MockStorageProcessor.instance.incomingDirs.size());
     }
 
-    protected void assertStorageProcess(AtomicEntityOperationDetails recordedObject,
-            String dataSetCode, String dataSetDirectory, int testId)
-    {
-        assertEquals(1, recordedObject.getDataSetRegistrations().size());
-
-        NewExternalData dataSet = recordedObject.getDataSetRegistrations().get(0);
-
-        assertEquals(dataSetCode, dataSet.getCode());
-        assertEquals(DATA_SET_TYPE, dataSet.getDataSetType());
-
-        File datasetLocation =
-                DatasetLocationUtil.getDatasetLocationPath(workingDirectory, dataSetCode,
-                        ch.systemsx.cisd.openbis.dss.generic.shared.Constants.DEFAULT_SHARE_ID,
-                        DATABASE_INSTANCE_UUID);
-
-        assertEquals(FileUtilities.getRelativeFilePath(new File(workingDirectory,
-                ch.systemsx.cisd.openbis.dss.generic.shared.Constants.DEFAULT_SHARE_ID),
-                datasetLocation), dataSet.getLocation());
-
-        assertEquals(new File(stagingDirectory, dataSetCode + "-storage"),
-                MockStorageProcessor.instance.rootDirs.get(testId));
-
-        File incomingDir = MockStorageProcessor.instance.incomingDirs.get(testId);
-
-        assertEquals(new File(new File(stagingDirectory, dataSetCode), dataSetDirectory),
-                incomingDir);
-
-        assertEquals("hello world" + (testId + 1),
-                FileUtilities
-                        .loadToString(new File(datasetLocation, "read" + (testId + 1) + ".me"))
-                        .trim());
-    }
-
     protected void assertCommitCount(final TestCaseParameters testCase)
     {
         int expectedCommitCount;
-- 
GitLab