From 792e582818e8f6db5ebb5293dc6b43d08e3e4663 Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Wed, 15 Dec 2010 15:35:28 +0000
Subject: [PATCH] LMS-1909 Fix tests.

SVN: 19178
---
 ...mpleAndDatasetRegistrationHandlerTest.java | 23 +++++++++++----
 .../openbis/generic/server/ETLService.java    |  4 +--
 .../generic/server/ETLServiceTest.java        | 29 ++++++++++++-------
 3 files changed, 38 insertions(+), 18 deletions(-)

diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/SampleAndDatasetRegistrationHandlerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/SampleAndDatasetRegistrationHandlerTest.java
index 22d7f86f35a..6d4d7a1912a 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/SampleAndDatasetRegistrationHandlerTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/SampleAndDatasetRegistrationHandlerTest.java
@@ -43,10 +43,13 @@ import ch.systemsx.cisd.etlserver.IExtensibleDataSetHandler;
 import ch.systemsx.cisd.etlserver.IExtensibleDataSetHandler.IDataSetRegistrator;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData;
+import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.DatabaseInstanceIdentifier;
+import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
 
 /**
  * @author Chandrasekhar Ramakrishnan
@@ -86,8 +89,7 @@ public class SampleAndDatasetRegistrationHandlerTest extends AbstractFileSystemT
         context.assertIsSatisfied();
     }
 
-    @Test(groups =
-        { "broken" })
+    @Test
     public void testRegisteringBasicControlFile()
     {
         final RecordingMatcher<DataSetInformation> dataSetInfoMatcher =
@@ -104,9 +106,9 @@ public class SampleAndDatasetRegistrationHandlerTest extends AbstractFileSystemT
 
         String logText =
                 "Global properties extracted from file 'control.tsv': SAMPLE_TYPE(MY_SAMPLE_TYPE) DATA_SET_TYPE(MY_DATA_SET_TYPE) USER(test@test.test)\n"
-                        + "Registered sample/data set pair SampleDataSetPair[sampleIdentifier=/MYSPACE/S1,sampleProperties={prop1: VAL10,prop2: VAL20,prop3: VAL30},dataSetInformation=DataSetInformation{sampleCode=<null>,properties={},dataSetType=MY_DATA_SET_TYPE,instanceUUID=<null>,instanceCode=<null>,spaceCode=<null>,experimentIdentifier=<null>,isCompleteFlag=U,extractableData=ExtractableData{productionDate=<null>,dataProducerCode=<null>,parentDataSetCodes=[],dataSetProperties=[NewProperty{property=prop1,value=VAL40}, NewProperty{property=prop2,value=VAL50}],code=<null>},uploadingUserEmailOrNull=<null>,uploadingUserIdOrNull=test}]\n"
-                        + "Registered sample/data set pair SampleDataSetPair[sampleIdentifier=/MYSPACE/S2,sampleProperties={prop1: VAL11,prop2: VAL21,prop3: VAL31},dataSetInformation=DataSetInformation{sampleCode=<null>,properties={},dataSetType=MY_DATA_SET_TYPE,instanceUUID=<null>,instanceCode=<null>,spaceCode=<null>,experimentIdentifier=<null>,isCompleteFlag=U,extractableData=ExtractableData{productionDate=<null>,dataProducerCode=<null>,parentDataSetCodes=[],dataSetProperties=[NewProperty{property=prop1,value=VAL41}, NewProperty{property=prop2,value=VAL51}],code=<null>},uploadingUserEmailOrNull=<null>,uploadingUserIdOrNull=test}]\n"
-                        + "Registered sample/data set pair SampleDataSetPair[sampleIdentifier=/MYSPACE/S3,sampleProperties={prop1: VAL12,prop2: VAL22,prop3: VAL32},dataSetInformation=DataSetInformation{sampleCode=<null>,properties={},dataSetType=MY_DATA_SET_TYPE,instanceUUID=<null>,instanceCode=<null>,spaceCode=<null>,experimentIdentifier=<null>,isCompleteFlag=U,extractableData=ExtractableData{productionDate=<null>,dataProducerCode=<null>,parentDataSetCodes=[],dataSetProperties=[NewProperty{property=prop1,value=VAL42}, NewProperty{property=prop2,value=VAL52}],code=<null>},uploadingUserEmailOrNull=<null>,uploadingUserIdOrNull=test}]";
+                        + "Registered sample/data set pair SampleDataSetPair[sampleIdentifier=/MYSPACE/S1,sampleProperties={prop1: VAL10,prop2: VAL20,prop3: VAL30},dataSetInformation=DataSetInformation{sampleCode=<null>,properties={},dataSetType=MY_DATA_SET_TYPE,instanceUUID=<null>,instanceCode=<null>,spaceCode=<null>,experimentIdentifier=/MYSPACE/MYPROJ/EXP1,isCompleteFlag=U,extractableData=ExtractableData{productionDate=<null>,dataProducerCode=<null>,parentDataSetCodes=[],dataSetProperties=[NewProperty{property=prop1,value=VAL40}, NewProperty{property=prop2,value=VAL50}],code=<null>},uploadingUserEmailOrNull=<null>,uploadingUserIdOrNull=test}]\n"
+                        + "Registered sample/data set pair SampleDataSetPair[sampleIdentifier=/MYSPACE/S2,sampleProperties={prop1: VAL11,prop2: VAL21,prop3: VAL31},dataSetInformation=DataSetInformation{sampleCode=<null>,properties={},dataSetType=MY_DATA_SET_TYPE,instanceUUID=<null>,instanceCode=<null>,spaceCode=<null>,experimentIdentifier=/MYSPACE/MYPROJ/EXP2,isCompleteFlag=U,extractableData=ExtractableData{productionDate=<null>,dataProducerCode=<null>,parentDataSetCodes=[],dataSetProperties=[NewProperty{property=prop1,value=VAL41}, NewProperty{property=prop2,value=VAL51}],code=<null>},uploadingUserEmailOrNull=<null>,uploadingUserIdOrNull=test}]\n"
+                        + "Registered sample/data set pair SampleDataSetPair[sampleIdentifier=/MYSPACE/S3,sampleProperties={prop1: VAL12,prop2: VAL22,prop3: VAL32},dataSetInformation=DataSetInformation{sampleCode=<null>,properties={},dataSetType=MY_DATA_SET_TYPE,instanceUUID=<null>,instanceCode=<null>,spaceCode=<null>,experimentIdentifier=/MYSPACE/MYPROJ/EXP3,isCompleteFlag=U,extractableData=ExtractableData{productionDate=<null>,dataProducerCode=<null>,parentDataSetCodes=[],dataSetProperties=[NewProperty{property=prop1,value=VAL42}, NewProperty{property=prop2,value=VAL52}],code=<null>},uploadingUserEmailOrNull=<null>,uploadingUserIdOrNull=test}]";
         checkAppenderContent(logText, "basic-example");
 
         context.assertIsSatisfied();
@@ -255,6 +257,17 @@ public class SampleAndDatasetRegistrationHandlerTest extends AbstractFileSystemT
 
                     final NewExternalData externalData = new NewExternalData();
 
+                    for (int i = 1; i < 4; ++i)
+                    {
+                        ExperimentIdentifier experimentId =
+                                new ExperimentIdentifier(DatabaseInstanceIdentifier.HOME,
+                                        "MYSPACE", "MYPROJ", "EXP" + i);
+                        oneOf(openbisService).tryToGetExperiment(experimentId);
+                        Experiment exp = new Experiment();
+                        exp.setIdentifier(experimentId.toString());
+                        will(returnValue(exp));
+                    }
+
                     exactly(3).of(delegator).handleDataSet(with(fileMatcher),
                             with(dataSetInfoMatcher), with(registratorMatcher));
                     will(new CustomAction("Call registrator")
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
index 264ddca95d5..59d2ae71155 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
@@ -905,11 +905,11 @@ public class ETLService extends AbstractCommonServer<IETLService> implements IET
             sampleBO.getSample().setRegistrator(getOrCreatePerson(sessionToken, userIdOrNull));
         }
         sampleBO.save();
+        SamplePE samplePE = sampleBO.getSample();
         scheduleDynamicPropertiesEvaluation(
                 getDAOFactory().getDynamicPropertyEvaluationScheduler(), SamplePE.class,
-                Arrays.asList(sampleBO.getSample()));
+                Arrays.asList(samplePE));
 
-        SamplePE samplePE = sampleBO.getSample();
         return samplePE;
     }
 
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceTest.java
index 54d5ebac782..a8019ae217c 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceTest.java
@@ -38,6 +38,7 @@ import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.openbis.generic.server.business.IDataStoreServiceFactory;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.ICommonBusinessObjectFactory;
+import ch.systemsx.cisd.openbis.generic.server.dataaccess.DynamicPropertyEvaluationOperation;
 import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase;
 import ch.systemsx.cisd.openbis.generic.shared.CommonTestUtils;
 import ch.systemsx.cisd.openbis.generic.shared.IDataStoreService;
@@ -495,8 +496,7 @@ public class ETLServiceTest extends AbstractServerTestCase
         return propertyPE;
     }
 
-    @Test(groups =
-        { "broken" })
+    @Test
     public void testRegisterSample()
     {
         prepareGetSession();
@@ -510,7 +510,9 @@ public class ETLServiceTest extends AbstractServerTestCase
 
                     one(sampleBO).define(sample);
                     one(sampleBO).save();
-                    one(sampleBO).getSample();
+                    one(evaluator).scheduleUpdate(
+                            with(any(DynamicPropertyEvaluationOperation.class)));
+                    exactly(1).of(sampleBO).getSample();
                     SamplePE samplePE = new SamplePE();
                     samplePE.setId(id);
                     will(returnValue(samplePE));
@@ -522,8 +524,7 @@ public class ETLServiceTest extends AbstractServerTestCase
         context.assertIsSatisfied();
     }
 
-    @Test(groups =
-        { "broken" })
+    @Test
     public void testRegisterSampleForAnExistingPerson()
     {
         prepareGetSession();
@@ -537,6 +538,8 @@ public class ETLServiceTest extends AbstractServerTestCase
 
                     one(sampleBO).define(sample);
                     one(sampleBO).save();
+                    one(evaluator).scheduleUpdate(
+                            with(any(DynamicPropertyEvaluationOperation.class)));
                     exactly(2).of(sampleBO).getSample();
                     SamplePE samplePE = new SamplePE();
                     samplePE.setId(id);
@@ -553,8 +556,7 @@ public class ETLServiceTest extends AbstractServerTestCase
         context.assertIsSatisfied();
     }
 
-    @Test(groups =
-        { "broken" })
+    @Test
     public void testRegisterSampleForANonExistingPerson()
     {
         prepareGetSession();
@@ -569,6 +571,8 @@ public class ETLServiceTest extends AbstractServerTestCase
 
                     one(sampleBO).define(sample);
                     one(sampleBO).save();
+                    one(evaluator).scheduleUpdate(
+                            with(any(DynamicPropertyEvaluationOperation.class)));
                     exactly(2).of(sampleBO).getSample();
                     SamplePE samplePE = new SamplePE();
                     samplePE.setId(id);
@@ -700,8 +704,7 @@ public class ETLServiceTest extends AbstractServerTestCase
         context.assertIsSatisfied();
     }
 
-    @Test(groups =
-        { "broken" })
+    @Test
     public void testRegisterSampleAndDataSet()
     {
         prepareGetSession();
@@ -725,6 +728,8 @@ public class ETLServiceTest extends AbstractServerTestCase
 
                     one(sampleBO).define(sample);
                     one(sampleBO).save();
+                    one(evaluator).scheduleUpdate(
+                            with(any(DynamicPropertyEvaluationOperation.class)));
                     exactly(2).of(sampleBO).getSample();
                     will(returnValue(samplePE));
 
@@ -753,7 +758,7 @@ public class ETLServiceTest extends AbstractServerTestCase
         context.assertIsSatisfied();
     }
 
-    @Test
+    @Test()
     public void testUpdateSampleAndRegisterDataSet()
     {
         prepareGetSession();
@@ -781,7 +786,9 @@ public class ETLServiceTest extends AbstractServerTestCase
 
                     one(sampleBO).update(sample);
                     one(sampleBO).save();
-                    exactly(1).of(sampleBO).getSample();
+                    one(evaluator).scheduleUpdate(
+                            with(any(DynamicPropertyEvaluationOperation.class)));
+                    exactly(2).of(sampleBO).getSample();
                     will(returnValue(samplePE));
 
                     one(boFactory).createExternalDataBO(SESSION);
-- 
GitLab