From 03c730f342aea0069991d55dc4b04e2b99a03668 Mon Sep 17 00:00:00 2001
From: pkupczyk <pkupczyk>
Date: Tue, 4 Mar 2014 16:51:39 +0000
Subject: [PATCH] SP-1226 / BIS-677 : Data Set Size Filling Maintenance Task -
 more tests

SVN: 30812
---
 .../etlserver/path/IPathsInfoDAOTest.java     | 79 ++++-------------
 .../systemtests/SystemTestCase.java           |  6 ++
 .../server/ServiceForDataStoreServerTest.java | 87 +++++++++++++++++++
 .../AbstractProteomicsSystemTestCase.java     | 10 +--
 4 files changed, 113 insertions(+), 69 deletions(-)
 create mode 100644 openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ServiceForDataStoreServerTest.java

diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/path/IPathsInfoDAOTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/path/IPathsInfoDAOTest.java
index fcea6f6d9fd..73961b7b565 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/path/IPathsInfoDAOTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/path/IPathsInfoDAOTest.java
@@ -16,78 +16,37 @@
 
 package ch.systemsx.cisd.etlserver.path;
 
-import java.io.PrintWriter;
-import java.sql.Connection;
-import java.sql.SQLException;
-
-import javax.sql.DataSource;
+import java.util.Date;
+import java.util.List;
 
 import net.lemnik.eodsql.QueryTool;
 
+import org.testng.Assert;
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.datastoreserver.systemtests.SystemTestCase;
+import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PathInfoDataSourceProvider;
+
 /**
- * This is a minimal test for {@link IPathsInfoDAO} which ensures that the query annotations can be
- * parsed correctly.
- * 
- * @author Bernd Rinn
+ * @author pkupczyk
  */
-public class IPathsInfoDAOTest
+public class IPathsInfoDAOTest extends SystemTestCase
 {
-    
-    private final DataSource DUMMY_DATA_SOURCE = new DataSource()
-    {
-        @Override
-        public Connection getConnection() throws SQLException
-        {
-            return null;
-        }
-
-        @Override
-        public Connection getConnection(String username, String password) throws SQLException
-        {
-            return null;
-        }
 
-        @Override
-        public PrintWriter getLogWriter() throws SQLException
-        {
-            return null;
-        }
+    @Test
+    public void testListDataSetsSize()
+    {
+        IPathsInfoDAO dao = QueryTool.getQuery(PathInfoDataSourceProvider.getDataSource(), IPathsInfoDAO.class);
 
-        @Override
-        public void setLogWriter(PrintWriter out) throws SQLException
-        {
-        }
+        long dataSetId = dao.createDataSet("DATA_SET_WITH_SIZE", "abc");
+        long rootDirectoryId = dao.createDataSetFile(dataSetId, null, "", "root", 123L, true, new Date());
+        dao.createDataSetFile(dataSetId, rootDirectoryId, "root", "file1.txt", 100L, false, new Date());
+        dao.createDataSetFile(dataSetId, rootDirectoryId, "root", "file2.txt", 23L, false, new Date());
 
-        @Override
-        public void setLoginTimeout(int seconds) throws SQLException
-        {
-        }
+        List<PathEntryDTO> entries = dao.listDataSetsSize(new String[] { "DATA_SET_WITH_SIZE" });
 
-        @Override
-        public int getLoginTimeout() throws SQLException
-        {
-            return 0;
-        }
-        
-        @Override
-        public <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException
-        {
-            return null;
-        }
-        
-        @Override
-        public boolean isWrapperFor(java.lang.Class<?> iface) throws java.sql.SQLException
-        {
-            return false;
-        }
-    };
-    
-    @Test
-    public void testGetQuery()
-    {
-        QueryTool.getQuery(DUMMY_DATA_SOURCE, IPathsInfoDAO.class);
+        Assert.assertEquals(1, entries.size());
+        Assert.assertEquals(Long.valueOf(123L), entries.get(0).getSizeInBytes());
     }
 
 }
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/SystemTestCase.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/SystemTestCase.java
index 2ee22f4dc20..0cc81f2ace8 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/SystemTestCase.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/SystemTestCase.java
@@ -382,4 +382,10 @@ public abstract class SystemTestCase extends AssertJUnit
         return logAppender;
     }
 
+    @SuppressWarnings("unchecked")
+    protected static <T> T getBean(String beanName)
+    {
+        return (T) applicationContext.getBean(beanName);
+    }
+
 }
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ServiceForDataStoreServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ServiceForDataStoreServerTest.java
new file mode 100644
index 00000000000..d330f608143
--- /dev/null
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ServiceForDataStoreServerTest.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2014 ETH Zuerich, CISD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ch.systemsx.cisd.openbis.generic.server;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.Assert;
+
+import org.testng.annotations.Test;
+
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
+import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO;
+import ch.systemsx.cisd.openbis.systemtest.SystemTestCase;
+
+/**
+ * @author pkupczyk
+ */
+public class ServiceForDataStoreServerTest extends SystemTestCase
+{
+
+    @Test()
+    public void testListPhysicalDataSetsWithUnknownSize()
+    {
+        String sessionToken = authenticateAs("test");
+        List<SimpleDataSetInformationDTO> dataSetsWithUnknownSize = etlService.listPhysicalDataSetsWithUnknownSize(sessionToken, "STANDARD");
+
+        sortByCode(dataSetsWithUnknownSize);
+        Assert.assertEquals(20, dataSetsWithUnknownSize.size());
+        Assert.assertEquals("20081105092159188-3", dataSetsWithUnknownSize.get(0).getDataSetCode());
+        Assert.assertEquals("VALIDATIONS_PARENT-28", dataSetsWithUnknownSize.get(dataSetsWithUnknownSize.size() - 1).getDataSetCode());
+    }
+
+    @Test(dependsOnMethods = "testListPhysicalDataSetsWithUnknownSize")
+    public void testUpdatePhysicalDataSetsWithUnknownSize()
+    {
+        String sessionToken = authenticateAs("test");
+
+        Map<String, Long> sizeMap = new HashMap<String, Long>();
+        sizeMap.put("20081105092159188-3", 123L);
+
+        etlService.updatePhysicalDataSetsSize(sessionToken, sizeMap);
+
+        List<SimpleDataSetInformationDTO> dataSetsWithUnknownSize = etlService.listPhysicalDataSetsWithUnknownSize(sessionToken, "STANDARD");
+        List<AbstractExternalData> updatedDataSets = etlService.listDataSetsByCode(sessionToken, Arrays.asList("20081105092159188-3"));
+
+        sortByCode(dataSetsWithUnknownSize);
+        Assert.assertEquals(19, dataSetsWithUnknownSize.size());
+        Assert.assertEquals("20081105092159222-2", dataSetsWithUnknownSize.get(0).getDataSetCode());
+        Assert.assertEquals("VALIDATIONS_PARENT-28", dataSetsWithUnknownSize.get(dataSetsWithUnknownSize.size() - 1).getDataSetCode());
+
+        Assert.assertEquals(1, updatedDataSets.size());
+        Assert.assertEquals("20081105092159188-3", updatedDataSets.get(0).getCode());
+        Assert.assertEquals(Long.valueOf(123L), updatedDataSets.get(0).getSize());
+    }
+
+    private void sortByCode(List<SimpleDataSetInformationDTO> dataSets)
+    {
+        Collections.sort(dataSets, new Comparator<SimpleDataSetInformationDTO>()
+            {
+                @Override
+                public int compare(SimpleDataSetInformationDTO o1, SimpleDataSetInformationDTO o2)
+                {
+                    return o1.getDataSetCode().compareTo(o2.getDataSetCode());
+                }
+            });
+    }
+
+}
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/AbstractProteomicsSystemTestCase.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/AbstractProteomicsSystemTestCase.java
index 493bd1675db..df6247b5106 100644
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/AbstractProteomicsSystemTestCase.java
+++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/proteomics/systemtests/AbstractProteomicsSystemTestCase.java
@@ -28,8 +28,6 @@ import ch.systemsx.cisd.openbis.plugin.proteomics.shared.ResourceNames;
 import ch.systemsx.cisd.openbis.plugin.proteomics.shared.api.v1.IProteomicsDataService;
 
 /**
- * 
- *
  * @author Franz-Josef Elmer
  */
 public abstract class AbstractProteomicsSystemTestCase extends SystemTestCase
@@ -53,7 +51,7 @@ public abstract class AbstractProteomicsSystemTestCase extends SystemTestCase
     protected String registerPerson(String userID)
     {
         ICommonServerForInternalUse commonServer = getCommonServer();
-        String systemSessionToken = commonServer .tryToAuthenticateAsSystem().getSessionToken();
+        String systemSessionToken = commonServer.tryToAuthenticateAsSystem().getSessionToken();
         commonServer.registerPerson(systemSessionToken, userID);
         return userID;
     }
@@ -99,10 +97,4 @@ public abstract class AbstractProteomicsSystemTestCase extends SystemTestCase
         return getBean(ResourceNames.PROTEOMICS_PLUGIN_SERVER);
     }
 
-    @SuppressWarnings("unchecked")
-    private <T> T getBean(String beanId)
-    {
-        return (T) applicationContext.getBean(beanId);
-    }
-
 }
\ No newline at end of file
-- 
GitLab