From fed2a3ac2931f937c8846bca95faf75c25dbcd52 Mon Sep 17 00:00:00 2001
From: pkupczyk <pkupczyk>
Date: Fri, 6 Jul 2012 09:30:34 +0000
Subject: [PATCH] SP-196 / BIS-118 : Link data sets improvements

SVN: 26023
---
 .../systemtests/OpenbisServiceFacadeTest.java | 24 ++++++++++++++++++-
 .../GeneralInformationServiceJsonApiTest.java | 24 ++++++++++++++++++-
 2 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/OpenbisServiceFacadeTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/OpenbisServiceFacadeTest.java
index 17a03674cae..93be6359bcb 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/OpenbisServiceFacadeTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/OpenbisServiceFacadeTest.java
@@ -44,9 +44,11 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.FileInfoDssDTO;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.NewDataSetDTO;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.NewDataSetDTO.DataSetOwner;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.NewDataSetDTO.DataSetOwnerType;
+import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet.Connections;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet.Connections;
+import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria.MatchClause;
+import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria.MatchClauseAttribute;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO;
 
 /**
@@ -216,6 +218,26 @@ public class OpenbisServiceFacadeTest extends SystemTestCase
         serviceFacade.putDataSet(newDataset, exampleDataSet);
     }
 
+    @Test
+    public void testSearchForLinkedDataSets() throws Exception
+    {
+        SearchCriteria sc = new SearchCriteria();
+        sc.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.TYPE, "LINK_TYPE"));
+
+        List<DataSet> dataSets = serviceFacade.searchForDataSets(sc);
+        assertEquals(3, dataSets.size());
+        assertEquals("CODE1", dataSets.get(0).getExternalDataSetCode());
+        assertEquals("CODE2", dataSets.get(1).getExternalDataSetCode());
+        assertEquals("CODE3", dataSets.get(2).getExternalDataSetCode());
+        assertEquals("http://example.edms.pl/code=CODE1", dataSets.get(0).getExternalDataSetLink());
+        assertEquals("http://example.edms.pl/code=CODE2", dataSets.get(1).getExternalDataSetLink());
+        assertEquals("http://www.openbis.ch/perm_id=CODE3", dataSets.get(2)
+                .getExternalDataSetLink());
+        assertEquals("DMS_1", dataSets.get(0).getExternalDataManagementSystem().getCode());
+        assertEquals("DMS_1", dataSets.get(1).getExternalDataManagementSystem().getCode());
+        assertEquals("DMS_2", dataSets.get(2).getExternalDataManagementSystem().getCode());
+    }
+
     private IOpenbisServiceFacade createServiceFacade(String userName)
     {
         return OpenbisServiceFacadeFactory.tryCreate(userName, "a", OPENBIS_URL,
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/remoteapitest/api/v1/GeneralInformationServiceJsonApiTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/remoteapitest/api/v1/GeneralInformationServiceJsonApiTest.java
index 83c343b45be..81095c69865 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/remoteapitest/api/v1/GeneralInformationServiceJsonApiTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/remoteapitest/api/v1/GeneralInformationServiceJsonApiTest.java
@@ -16,7 +16,7 @@
 
 package ch.systemsx.cisd.openbis.remoteapitest.api.v1;
 
-import static org.testng.AssertJUnit.assertEquals;
+import static junit.framework.Assert.assertEquals;
 import static org.testng.AssertJUnit.assertNotNull;
 import static org.testng.AssertJUnit.assertTrue;
 import static org.testng.AssertJUnit.fail;
@@ -610,6 +610,28 @@ public class GeneralInformationServiceJsonApiTest extends RemoteApiTestCase
                 result.toString());
     }
 
+    @Test
+    public void testSearchForDataSetsLinked()
+    {
+        SearchCriteria searchCriteria = new SearchCriteria();
+        searchCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.TYPE,
+                "LINK_TYPE"));
+
+        List<DataSet> result =
+                generalInformationService.searchForDataSets(sessionToken, searchCriteria);
+
+        assertEquals(3, result.size());
+        assertEquals("CODE1", result.get(0).getExternalDataSetCode());
+        assertEquals("CODE2", result.get(1).getExternalDataSetCode());
+        assertEquals("CODE3", result.get(2).getExternalDataSetCode());
+        assertEquals("http://example.edms.pl/code=CODE1", result.get(0).getExternalDataSetLink());
+        assertEquals("http://example.edms.pl/code=CODE2", result.get(1).getExternalDataSetLink());
+        assertEquals("http://www.openbis.ch/perm_id=CODE3", result.get(2).getExternalDataSetLink());
+        assertEquals("DMS_1", result.get(0).getExternalDataManagementSystem().getCode());
+        assertEquals("DMS_1", result.get(1).getExternalDataManagementSystem().getCode());
+        assertEquals("DMS_2", result.get(2).getExternalDataManagementSystem().getCode());
+    }
+
     @Test
     public void testListVocabularyTerms()
     {
-- 
GitLab