From feb4b46d289d138c42c04aa68d2087d4a74a007d Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Wed, 16 Mar 2011 14:58:08 +0000
Subject: [PATCH] [LMS-1976] system tests

SVN: 20373
---
 .../api/v1/GeneralInformationServiceTest.java | 45 ++++++++++++++++++-
 1 file changed, 44 insertions(+), 1 deletion(-)

diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/api/v1/GeneralInformationServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/api/v1/GeneralInformationServiceTest.java
index 36204a2a003..86669c03159 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/api/v1/GeneralInformationServiceTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/api/v1/GeneralInformationServiceTest.java
@@ -43,6 +43,7 @@ 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.SearchCriteria.MatchClause;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria.MatchClauseAttribute;
+import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchSubCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SpaceWithProjectsAndRoleAssignments;
 import ch.systemsx.cisd.openbis.systemtest.SystemTestCase;
 
@@ -126,7 +127,49 @@ public class GeneralInformationServiceTest extends SystemTestCase
         SearchCriteria sc = new SearchCriteria();
         sc.addMatchClause(MatchClause.createPropertyMatch("ORGANISM", "HUMAN"));
         List<Sample> result = generalInformationService.searchForSamples(sessionToken, sc);
-        assertEquals(true, result.size() > 0);
+        assertEquals(1, result.size());
+    }
+
+    @Test
+    public void testSearchForSamplesByExperimentCode()
+    {
+        // Search for Samples with only experiment's code limiting the results
+        SearchCriteria sc = new SearchCriteria();
+        SearchCriteria ec = new SearchCriteria();
+        ec.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.CODE, "EXP-TEST-1"));
+        sc.addSubCriteria(SearchSubCriteria.createExperimentCriteria(ec));
+        List<Sample> result = generalInformationService.searchForSamples(sessionToken, sc);
+        assertEquals(1, result.size());
+        assertEquals("/CISD/NEMO/EXP-TEST-1", result.get(0).getExperimentIdentifierOrNull());
+    }
+
+    @Test
+    public void testSearchForSamplesByExperimentProperty()
+    {
+        // Search for Samples with only experiment's property limiting the results
+        SearchCriteria sc = new SearchCriteria();
+        SearchCriteria ec = new SearchCriteria();
+        ec.addMatchClause(MatchClause.createPropertyMatch("DESCRIPTION", "A simple experiment"));
+        sc.addSubCriteria(SearchSubCriteria.createExperimentCriteria(ec));
+        List<Sample> result = generalInformationService.searchForSamples(sessionToken, sc);
+        assertEquals(5, result.size());
+    }
+
+    @Test
+    public void testSearchForSamplesByPropertyAndExperimentCode()
+    {
+        // Search for Samples first
+        SearchCriteria sc = new SearchCriteria();
+        sc.addMatchClause(MatchClause.createPropertyMatch("ORGANISM", "*"));
+        List<Sample> result = generalInformationService.searchForSamples(sessionToken, sc);
+        assertEquals(4, result.size());
+        // Add experiment criteria limiting results to only 1
+        SearchCriteria ec = new SearchCriteria();
+        ec.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.CODE, "EXP-TEST-1"));
+        sc.addSubCriteria(SearchSubCriteria.createExperimentCriteria(ec));
+        List<Sample> result2 = generalInformationService.searchForSamples(sessionToken, sc);
+        assertEquals(1, result2.size());
+        assertEquals("/CISD/NEMO/EXP-TEST-1", result2.get(0).getExperimentIdentifierOrNull());
     }
 
     @Test
-- 
GitLab