From 01fcd907da47a93f57b01ff82efbe84eb5660d65 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Mon, 10 Jan 2011 08:50:37 +0000
Subject: [PATCH] SE-329 Builder classes extended and used, DataSetBuilder
 added

SVN: 19329
---
 .../api/v1/GeneralInformationServiceTest.java | 106 +++++++-----------
 .../basic/dto/builders/DataSetBuilder.java    |  78 +++++++++++++
 .../basic/dto/builders/ExperimentBuilder.java |  15 +++
 .../basic/dto/builders/SampleBuilder.java     |   5 +
 4 files changed, 138 insertions(+), 66 deletions(-)
 create mode 100644 openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/DataSetBuilder.java

diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationServiceTest.java
index e0af1e6be60..d3cac9d9e0b 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationServiceTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationServiceTest.java
@@ -44,16 +44,18 @@ import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria.MatchCl
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SpaceWithProjectsAndRoleAssignments;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetRelatedEntities;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DetailedSearchCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy.RoleCode;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
-import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.DataSetBuilder;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.ExperimentBuilder;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.SampleBuilder;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.SampleTypeBuilder;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.RoleAssignmentPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier;
 
 /**
@@ -205,18 +207,14 @@ public class GeneralInformationServiceTest extends AbstractServerTestCase
                 {
                     one(commonServer).searchForSamples(with(SESSION_TOKEN),
                             with(any(DetailedSearchCriteria.class)));
-                    ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample returnSample =
-                            new ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample();
-                    SampleType returnSampleType = new SampleType();
-                    returnSample.setId(new Long(1));
-                    returnSample.setPermId("permId");
-                    returnSample.setCode("code");
-                    returnSample.setIdentifier("/space/code");
-                    returnSampleType.setId(new Long(1));
-                    returnSampleType.setCode("sample-type");
-                    returnSample.setSampleType(returnSampleType);
-                    returnSample.setProperties(new ArrayList<IEntityProperty>());
-                    will(returnValue(Collections.singletonList(returnSample)));
+                    SampleBuilder sample =
+                            new SampleBuilder("/space/code")
+                                    .id(1L)
+                                    .permID("permId")
+                                    .code("code")
+                                    .type(new SampleTypeBuilder().id(1L).code("sample-type")
+                                            .getSampleType());
+                    will(returnValue(Collections.singletonList(sample.getSample())));
                 }
             });
     }
@@ -236,25 +234,16 @@ public class GeneralInformationServiceTest extends AbstractServerTestCase
 
                     one(commonServer).listRelatedDataSets(with(SESSION_TOKEN),
                             with(any(DataSetRelatedEntities.class)));
-                    ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData returnData =
-                            new ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData();
-                    DataSetType returnDataSetType = new DataSetType();
-                    returnDataSetType.setCode("ds-type");
-                    returnData.setCode("ds-code");
-                    returnData.setDataSetType(returnDataSetType);
-                    returnData.setDataSetProperties(new ArrayList<IEntityProperty>());
-
-                    ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment experiment =
-                            new ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment();
-                    experiment.setIdentifier("/space/project/exp");
-                    returnData.setExperiment(experiment);
-
-                    ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample sample =
-                            new ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample();
-                    sample.setIdentifier("/space/code");
-                    returnData.setSample(sample);
-
-                    will(returnValue(Collections.singletonList(returnData)));
+                    DataSetBuilder dataSet =
+                            new DataSetBuilder()
+                                    .type("ds-type")
+                                    .code("ds-code")
+                                    .experiment(
+                                            new ExperimentBuilder()
+                                                    .identifier("/space/project/exp")
+                                                    .getExperiment())
+                                    .sample(new SampleBuilder("/space/code").getSample());
+                    will(returnValue(Collections.singletonList(dataSet.getDataSet())));
                 }
             });
 
@@ -282,10 +271,8 @@ public class GeneralInformationServiceTest extends AbstractServerTestCase
             {
                 {
                     one(commonServer).listSampleTypes(SESSION_TOKEN);
-                    SampleType returnSampleType = new SampleType();
-                    returnSampleType.setId(new Long(1));
-                    returnSampleType.setCode("sample-type");
-                    will(returnValue(Collections.singletonList(returnSampleType)));
+                    SampleTypeBuilder sampleType = new SampleTypeBuilder().id(1L).code("sample-type");
+                    will(returnValue(Collections.singletonList(sampleType.getSampleType())));
 
                     one(commonServer).listRelatedDataSets(with(SESSION_TOKEN),
                             with(any(DataSetRelatedEntities.class)));
@@ -307,25 +294,16 @@ public class GeneralInformationServiceTest extends AbstractServerTestCase
                 {
                     one(commonServer).listSampleExternalData(with(SESSION_TOKEN),
                             with(new TechId(1)), with(true));
-                    ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData returnData =
-                            new ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData();
-                    DataSetType returnDataSetType = new DataSetType();
-                    returnDataSetType.setCode("ds-type");
-                    returnData.setCode("ds-code");
-                    returnData.setDataSetType(returnDataSetType);
-                    returnData.setDataSetProperties(new ArrayList<IEntityProperty>());
-
-                    ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment experiment =
-                            new ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment();
-                    experiment.setIdentifier("/space/project/exp");
-                    returnData.setExperiment(experiment);
-
-                    ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample sample =
-                            new ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample();
-                    sample.setIdentifier("/space/code");
-                    returnData.setSample(sample);
-
-                    will(returnValue(Collections.singletonList(returnData)));
+                    DataSetBuilder dataSet =
+                            new DataSetBuilder()
+                                    .type("ds-type")
+                                    .code("ds-code")
+                                    .experiment(
+                                            new ExperimentBuilder()
+                                                    .identifier("/space/project/exp")
+                                                    .getExperiment())
+                                    .sample(new SampleBuilder("/space/code").getSample());
+                    will(returnValue(Collections.singletonList(dataSet.getDataSet())));
                 }
             });
 
@@ -381,15 +359,11 @@ public class GeneralInformationServiceTest extends AbstractServerTestCase
                     one(commonServer).listExperiments(SESSION_TOKEN, returnExperimentType,
                             projectIdentifier);
 
-                    ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment returnExperiment =
-                            new ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment();
-                    returnExperiment.setId(new Long(1));
-                    returnExperiment.setPermId("EXP-PERMID");
-                    returnExperiment.setCode("EXP-CODE");
-                    returnExperiment.setIdentifier("/SPACE-1/PROJECT-1/EXP-CODE");
-                    returnExperiment.setExperimentType(returnExperimentType);
-                    returnExperiment.setProperties(new ArrayList<IEntityProperty>());
-                    will(returnValue(Collections.singletonList(returnExperiment)));
+                    ExperimentBuilder experiment =
+                            new ExperimentBuilder().id(1L).code("EXP-CODE").permID("EXP-PERMID")
+                                    .identifier("/SPACE-1/PROJECT-1/EXP-CODE")
+                                    .type(returnExperimentType.getCode());
+                    will(returnValue(Collections.singletonList(experiment.getExperiment())));
                 }
             });
     }
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/DataSetBuilder.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/DataSetBuilder.java
new file mode 100644
index 00000000000..4f0b48ad95d
--- /dev/null
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/DataSetBuilder.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2011 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.shared.basic.dto.builders;
+
+import java.util.ArrayList;
+
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
+
+/**
+ * Builder class for creating an instance of {@link ExternalData}.
+ *
+ * @author Franz-Josef Elmer
+ */
+public class DataSetBuilder
+{
+    private final ExternalData dataSet;
+    
+    public DataSetBuilder()
+    {
+        dataSet = new ExternalData();
+        dataSet.setDataSetProperties(new ArrayList<IEntityProperty>());
+    }
+    
+    public DataSetBuilder(long id)
+    {
+        this();
+        dataSet.setId(id);
+    }
+    
+    public DataSetBuilder code(String code)
+    {
+        dataSet.setCode(code);
+        return this;
+    }
+    
+    public DataSetBuilder type(String dataSetTypeCode)
+    {
+        dataSet.setDataSetType(new DataSetType(dataSetTypeCode));
+        return this;
+    }
+    
+    public DataSetBuilder experiment(Experiment experiment)
+    {
+        dataSet.setExperiment(experiment);
+        return this;
+    }
+    
+    public DataSetBuilder sample(Sample sample)
+    {
+        dataSet.setSample(sample);
+        return this;
+    }
+    
+    public final ExternalData getDataSet()
+    {
+        return dataSet;
+    }
+    
+    
+}
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentBuilder.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentBuilder.java
index a1a369f04c6..6064bbaa01a 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentBuilder.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentBuilder.java
@@ -21,6 +21,7 @@ import java.util.Date;
 import java.util.List;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
@@ -43,6 +44,14 @@ public class ExperimentBuilder
         experiment.setProperties(new ArrayList<IEntityProperty>());
     }
     
+    public ExperimentBuilder type(String experimentTypeCode)
+    {
+        ExperimentType experimentType = new ExperimentType();
+        experimentType.setCode(experimentTypeCode);
+        experiment.setExperimentType(experimentType);
+        return this;
+    }
+    
     public ExperimentBuilder id(long id)
     {
         experiment.setId(id);
@@ -70,6 +79,12 @@ public class ExperimentBuilder
         return this;
     }
     
+    public ExperimentBuilder permID(String permID)
+    {
+        experiment.setPermId(permID);
+        return this;
+    }
+    
     public ExperimentBuilder invalidate()
     {
         experiment.setInvalidation(new Invalidation());
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/SampleBuilder.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/SampleBuilder.java
index 0b3d40d532d..29aaf284aba 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/SampleBuilder.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/SampleBuilder.java
@@ -96,6 +96,11 @@ public class SampleBuilder
     {
         SampleType sampleType = new SampleType();
         sampleType.setCode(typeCode);
+        return type(sampleType);
+    }
+
+    public SampleBuilder type(SampleType sampleType)
+    {
         sample.setSampleType(sampleType);
         return this;
     }
-- 
GitLab