From 25fefe6cd569793ce1dea1de0543786e51a14198 Mon Sep 17 00:00:00 2001
From: felmer <franz-josef.elmer@id.ethz.ch>
Date: Tue, 27 Feb 2018 15:27:24 +0100
Subject: [PATCH] SSDM-2367: more Java system tests

---
 .../AbstractArchiveUnarchiveDataSetTest.java  |  2 +-
 .../systemtest/api/v3/ArchiveDataSetTest.java | 26 ++++++++++++---
 .../systemtest/api/v3/LockDataSetTest.java    | 32 +++++++++++++------
 .../systemtest/api/v3/UnlockDataSetTest.java  | 20 ++++++++++++
 4 files changed, 65 insertions(+), 15 deletions(-)

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 54dafd9d1c7..ae48e78ce16 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 06f5c0cc851..f2623f838a5 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 e5fb08492eb..8e22d14dc6c 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 605986eafcd..066c7081537 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
     {
-- 
GitLab