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