diff --git a/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/AbstractArchiveUnarchiveDataSetTest.java b/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/AbstractArchiveUnarchiveDataSetTest.java index 54dafd9d1c727213754ce093da8443ffebfe4ed1..ae48e78ce1640b04321a27f0e38ab9a6b8e3654a 100644 --- a/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/AbstractArchiveUnarchiveDataSetTest.java +++ b/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/AbstractArchiveUnarchiveDataSetTest.java @@ -61,7 +61,7 @@ public class AbstractArchiveUnarchiveDataSetTest extends AbstractFileTest { final long timeoutMillis = 120 * 1000; final long finishMillis = System.currentTimeMillis() + timeoutMillis; - final long intervalMillis = 100; + final long intervalMillis = 500; String sessionToken = v3.login(TEST_USER, PASSWORD); diff --git a/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/ArchiveDataSetTest.java b/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/ArchiveDataSetTest.java index 06f5c0cc85141b9f3a6971c0cfce0b4708d86c2e..f2623f838a5d6915ed3a28249446d3e02878a73b 100644 --- a/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/ArchiveDataSetTest.java +++ b/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/ArchiveDataSetTest.java @@ -24,6 +24,7 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.ArchivingStatus; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.archive.DataSetArchiveOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.id.DataSetPermId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.id.IDataSetId; +import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.lock.DataSetLockOptions; import ch.systemsx.cisd.common.exceptions.AuthorizationFailureException; import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.systemtest.authorization.ProjectAuthorizationUser; @@ -57,20 +58,37 @@ public class ArchiveDataSetTest extends AbstractArchiveUnarchiveDataSetTest } @Test - public void testArchiveWithRemoveFromStoreTrue() throws Exception + public void testArchiveLockedDataSet() throws Exception { + // Given + registerDataSet(); String sessionToken = v3.login(TEST_USER, PASSWORD); + DataSetPermId dataSetId = new DataSetPermId(dataSetCode); + v3.lockDataSets(sessionToken, Arrays.asList(dataSetId), new DataSetLockOptions()); + DataSetArchiveOptions options = new DataSetArchiveOptions(); + waitUntilDataSetStatus(dataSetCode, ArchivingStatus.LOCKED); - registerDataSet(); + // Then + v3.archiveDataSets(sessionToken, Arrays.asList(dataSetId), options); + + waitUntilDataSetStatus(dataSetCode, ArchivingStatus.LOCKED); + } + @Test + public void testArchiveWithRemoveFromStoreTrue() throws Exception + { + String sessionToken = v3.login(TEST_USER, PASSWORD); + + registerDataSet(); + DataSetPermId dataSetId = new DataSetPermId(dataSetCode); DataSetArchiveOptions options = new DataSetArchiveOptions(); - + waitUntilDataSetStatus(dataSetCode, ArchivingStatus.AVAILABLE); v3.archiveDataSets(sessionToken, Arrays.asList(dataSetId), options); waitUntilDataSetStatus(dataSetCode, ArchivingStatus.ARCHIVED); } - + @Test public void testArchiveWithRemoveFromStoreFalse() throws Exception { diff --git a/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/LockDataSetTest.java b/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/LockDataSetTest.java index e5fb08492ebe7192d6fb4b7fe25f7f75145cc9b6..8e22d14dc6c384057dd8b3f6eed971eaac04d680 100644 --- a/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/LockDataSetTest.java +++ b/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/LockDataSetTest.java @@ -21,8 +21,7 @@ import java.util.Arrays; import org.testng.annotations.Test; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.ArchivingStatus; -import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.DataSet; -import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.fetchoptions.DataSetFetchOptions; +import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.archive.DataSetArchiveOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.id.DataSetPermId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.id.IDataSetId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.lock.DataSetLockOptions; @@ -49,10 +48,7 @@ public class LockDataSetTest extends AbstractArchiveUnarchiveDataSetTest v3.lockDataSets(sessionToken, Arrays.asList(dataSetId), options); // Then - DataSetFetchOptions fetchOptions = new DataSetFetchOptions(); - fetchOptions.withPhysicalData(); - DataSet dataSet = v3.getDataSets(sessionToken, Arrays.asList(dataSetId), fetchOptions).get(dataSetId); - assertEquals(ArchivingStatus.LOCKED, dataSet.getPhysicalData().getStatus()); + waitUntilDataSetStatus(dataSetCode, ArchivingStatus.LOCKED); v3.logout(sessionToken); } @@ -72,10 +68,26 @@ public class LockDataSetTest extends AbstractArchiveUnarchiveDataSetTest v3.lockDataSets(sessionToken, Arrays.asList(dataSetId), options); // Then - DataSetFetchOptions fetchOptions = new DataSetFetchOptions(); - fetchOptions.withPhysicalData(); - DataSet dataSet = v3.getDataSets(sessionToken, Arrays.asList(dataSetId), fetchOptions).get(dataSetId); - assertEquals(ArchivingStatus.LOCKED, dataSet.getPhysicalData().getStatus()); + waitUntilDataSetStatus(dataSetCode, ArchivingStatus.LOCKED); + + v3.logout(sessionToken); + } + + @Test + public void testLockArchivedDataSet() throws Exception + { + // Given + String sessionToken = v3.login(TEST_USER, PASSWORD); + registerDataSet(); + DataSetPermId dataSetId = new DataSetPermId(dataSetCode); + v3.archiveDataSets(sessionToken, Arrays.asList(dataSetId), new DataSetArchiveOptions()); + waitUntilDataSetStatus(dataSetCode, ArchivingStatus.ARCHIVED); + + // When + v3.lockDataSets(sessionToken, Arrays.asList(dataSetId), new DataSetLockOptions()); + + // Then + waitUntilDataSetStatus(dataSetCode, ArchivingStatus.ARCHIVED); v3.logout(sessionToken); } diff --git a/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/UnlockDataSetTest.java b/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/UnlockDataSetTest.java index 605986eafcda5b5351cc7935d8505f9904c5c05c..066c708153787bdff1dc77856fee69ec88d93487 100644 --- a/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/UnlockDataSetTest.java +++ b/datastore_server/sourceTest/java/ch/ethz/sis/openbis/generic/dss/systemtest/api/v3/UnlockDataSetTest.java @@ -22,6 +22,7 @@ import org.testng.annotations.Test; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.ArchivingStatus; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.DataSet; +import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.archive.DataSetArchiveOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.id.DataSetPermId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.id.IDataSetId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.lock.DataSetLockOptions; @@ -77,6 +78,25 @@ public class UnlockDataSetTest extends AbstractArchiveUnarchiveDataSetTest v3.logout(sessionToken); } + @Test + public void testUnlockArchivedDataSet() throws Exception + { + // Given + String sessionToken = v3.login(TEST_USER, PASSWORD); + registerDataSet(); + DataSetPermId dataSetId = new DataSetPermId(dataSetCode); + v3.archiveDataSets(sessionToken, Arrays.asList(dataSetId), new DataSetArchiveOptions()); + waitUntilDataSetStatus(dataSetCode, ArchivingStatus.ARCHIVED); + + // When + v3.unlockDataSets(sessionToken, Arrays.asList(dataSetId), new DataSetUnlockOptions()); + + // Then + waitUntilDataSetStatus(dataSetCode, ArchivingStatus.ARCHIVED); + + v3.logout(sessionToken); + } + @Test(expectedExceptions = UserFailureException.class, expectedExceptionsMessageRegExp = ".*Object with DataSetPermId = \\[IDONTEXIST\\] has not been found.*") public void testUnlockWithNonexistentDataSet() throws Exception {