From 7f25d3a3f6e7774a57e50838faa74f8e1e9da32d Mon Sep 17 00:00:00 2001
From: tpylak <tpylak>
Date: Mon, 2 Feb 2009 10:51:11 +0000
Subject: [PATCH] LMS-713 add and fix unit tests

SVN: 9637
---
 .../web/server/CommonClientServiceTest.java   | 120 +++++++++---------
 1 file changed, 63 insertions(+), 57 deletions(-)

diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java
index 7c93132e419..c3e74274a1e 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java
@@ -16,9 +16,9 @@
 
 package ch.systemsx.cisd.openbis.generic.client.web.server;
 
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
-import java.util.Set;
 
 import org.jmock.Expectations;
 import org.testng.annotations.BeforeMethod;
@@ -28,10 +28,10 @@ import ch.systemsx.cisd.openbis.generic.client.shared.DataType;
 import ch.systemsx.cisd.openbis.generic.client.shared.PropertyType;
 import ch.systemsx.cisd.openbis.generic.client.shared.SampleType;
 import ch.systemsx.cisd.openbis.generic.client.shared.Vocabulary;
-import ch.systemsx.cisd.openbis.generic.client.shared.VocabularyTerm;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ListSampleCriteria;
+import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Project;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
@@ -39,6 +39,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.CacheManager
 import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.DefaultResultSet;
 import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.IOriginalDataProvider;
 import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.IResultSetKeyGenerator;
+import ch.systemsx.cisd.openbis.generic.client.web.server.translator.VocabularyTranslator;
 import ch.systemsx.cisd.openbis.generic.server.SessionConstants;
 import ch.systemsx.cisd.openbis.generic.server.business.ManagerTestTool;
 import ch.systemsx.cisd.openbis.generic.shared.ICommonServer;
@@ -78,11 +79,6 @@ public final class CommonClientServiceTest extends AbstractClientServiceTest
         return sampleType;
     }
 
-    private final static List<Sample> createSampleList()
-    {
-        return Collections.emptyList();
-    }
-
     private final static void assertDataTypeEquals(final DataTypePE dataTypePE,
             final DataType dataType)
     {
@@ -111,16 +107,6 @@ public final class CommonClientServiceTest extends AbstractClientServiceTest
         return vocabularyTermPE;
     }
 
-    private final static void assertVocabularyEquals(final VocabularyPE vocabularyPE,
-            final Vocabulary vocabulary)
-    {
-        assertEquals(vocabulary.getCode(), vocabularyPE.getCode());
-        assertEquals(vocabulary.getDescription(), vocabularyPE.getDescription());
-        final List<VocabularyTerm> terms = vocabulary.getTerms();
-        final Set<VocabularyTermPE> termPEs = vocabularyPE.getTerms();
-        assertEquals(terms.size(), termPEs.size());
-    }
-
     //
     // AbstractClientServiceTest
     //
@@ -137,10 +123,50 @@ public final class CommonClientServiceTest extends AbstractClientServiceTest
     @Test
     public final void testListSamples()
     {
-        final String resultSetKey = "1";
-        final DefaultResultSet<String, Sample> defaultResultSet =
-                new DefaultResultSet<String, Sample>(resultSetKey, createSampleList(), 0);
-        final ListSampleCriteria listCriteria = createListCriteria();
+        List<Sample> entities = Arrays.asList(new Sample());
+        final ListSampleCriteria criteria = createListCriteria();
+        prepareListEntities(entities, criteria);
+
+        final ResultSet<Sample> resultSet = commonClientService.listSamples(criteria);
+        assertEqualEntities(entities, resultSet);
+        context.assertIsSatisfied();
+    }
+
+    @Test
+    public final void testListProjects()
+    {
+        List<Project> entities = Arrays.asList(new Project());
+        final DefaultResultSetConfig<String, Project> criteria =
+                DefaultResultSetConfig.createFetchAll();
+        prepareListEntities(entities, criteria);
+
+        final ResultSet<Project> resultSet = commonClientService.listProjects(criteria);
+        assertEqualEntities(entities, resultSet);
+        context.assertIsSatisfied();
+    }
+
+    @Test
+    public final void testListVocabularies()
+    {
+        final Vocabulary vocabulary = VocabularyTranslator.translate(createVocabulary());
+        final List<Vocabulary> entities = Collections.singletonList(vocabulary);
+        final boolean excludeInternals = true;
+        final DefaultResultSetConfig<String, Vocabulary> criteria =
+                DefaultResultSetConfig.createFetchAll();
+        prepareListEntities(entities, criteria);
+
+        ResultSet<Vocabulary> resultSet =
+                commonClientService.listVocabularies(false, excludeInternals, criteria);
+        assertEqualEntities(entities, resultSet);
+        context.assertIsSatisfied();
+    }
+
+    private final <T> void prepareListEntities(List<T> entities,
+            final DefaultResultSetConfig<String, T> criteria)
+    {
+        final String resultSetKey = "131";
+        final DefaultResultSet<String, T> defaultResultSet =
+                new DefaultResultSet<String, T>(resultSetKey, entities, entities.size());
         context.checking(new Expectations()
             {
                 {
@@ -148,16 +174,25 @@ public final class CommonClientServiceTest extends AbstractClientServiceTest
                     prepareGetSessionToken(this);
                     prepareGetResultSetManager(this);
 
-                    one(resultSetManager).getResultSet(with(listCriteria),
-                            getAnyOriginalDataProvider(this));
+                    prepareGetResultSet(this, criteria);
                     will(returnValue(defaultResultSet));
                 }
             });
-        final ResultSet<Sample> resultSet = commonClientService.listSamples(listCriteria);
-        assertEquals(0, resultSet.getList().size());
-        assertEquals(resultSetKey, resultSet.getResultSetKey());
-        assertEquals(0, resultSet.getTotalLength());
-        context.assertIsSatisfied();
+    }
+
+    @SuppressWarnings("unchecked")
+    private <T> void prepareGetResultSet(Expectations exp,
+            DefaultResultSetConfig<String, T> criteria)
+    {
+        exp.one(resultSetManager).getResultSet(exp.with(criteria),
+                exp.with(Expectations.any(IOriginalDataProvider.class)));
+    }
+
+    private <T> void assertEqualEntities(List<T> entities, final ResultSet<T> resultSet)
+    {
+        assertEquals(entities.size(), resultSet.getList().size());
+        assertEquals(entities.get(0), resultSet.getList().get(0));
+        assertEquals(entities.size(), resultSet.getTotalLength());
     }
 
     @Test
@@ -207,12 +242,6 @@ public final class CommonClientServiceTest extends AbstractClientServiceTest
         exp.will(Expectations.returnValue(manager));
     }
 
-    @SuppressWarnings("unchecked")
-    private final IOriginalDataProvider<Sample> getAnyOriginalDataProvider(final Expectations exp)
-    {
-        return exp.with(Expectations.any(IOriginalDataProvider.class));
-    }
-
     private <T> CacheManager<String, T> createCacheManager()
     {
         return new CacheManager<String, T>(new CounterBasedResultSetKeyGenerator());
@@ -265,29 +294,6 @@ public final class CommonClientServiceTest extends AbstractClientServiceTest
         context.assertIsSatisfied();
     }
 
-    @Test
-    public final void testListVocabularies()
-    {
-        final VocabularyPE vocabularyPE = createVocabulary();
-        final boolean excludeInternals = true;
-        context.checking(new Expectations()
-            {
-                {
-                    prepareGetSessionToken(this);
-
-                    one(commonServer).listVocabularies(SESSION_TOKEN, false, excludeInternals);
-                    will(returnValue(Collections.singletonList(vocabularyPE)));
-                }
-            });
-        DefaultResultSetConfig<String, Vocabulary> criteria =
-                DefaultResultSetConfig.createFetchAll();
-        final List<Vocabulary> vocabularies =
-                commonClientService.listVocabularies(false, excludeInternals, criteria).getList();
-        assertEquals(1, vocabularies.size());
-        assertVocabularyEquals(vocabularyPE, vocabularies.get(0));
-        context.assertIsSatisfied();
-    }
-
     @Test
     public void testListExternalDataForExperiment()
     {
-- 
GitLab