From 16582dae1ef3a3cb3211bd90b57cbccbd2f9f99b Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Fri, 27 May 2011 08:58:05 +0000
Subject: [PATCH] [LMS-2282] fixed tests

SVN: 21488
---
 .../openbis/generic/server/business/bo/DataBO.java | 14 +++++++++-----
 .../generic/server/business/bo/DataBOTest.java     |  7 ++++---
 2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java
index fa0fcb0b221..9c2c8824595 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java
@@ -486,7 +486,11 @@ public class DataBO extends AbstractDataSetBusinessObject implements IDataBO
             // remove connection with sample
             data.setSample(null);
         }
-        checkSameSpace(data, data.getContainer()); // space could be changed by change of experiment
+        if (data.getContainer() != null)
+        {
+            // space could be changed by change of experiment
+            checkSameSpace(data.getContainer(), data);
+        }
         updateParents(updates.getModifiedParentDatasetCodesOrNull());
         updateComponents(updates.getModifiedContainedDatasetCodesOrNull());
         checkSameSpace(data, data.getContainedDataSets()); // even if components were not changed
@@ -500,6 +504,10 @@ public class DataBO extends AbstractDataSetBusinessObject implements IDataBO
     private void checkSameSpace(DataPE container, DataPE component)
     {
         // see LMS-2282
+        if (container.getSpace().equals(component.getSpace()))
+        {
+            return;
+        }
         throw UserFailureException.fromTemplate("Data set's '%s' space ('%s') needs to be the same"
                 + " as its container's '%s' space ('%s').", component.getCode(), component
                 .getSpace().getCode(), container.getCode(), container.getSpace().getCode());
@@ -751,10 +759,6 @@ public class DataBO extends AbstractDataSetBusinessObject implements IDataBO
     private void updateExperiment(ExperimentIdentifier experimentIdentifier)
     {
         assert experimentIdentifier != null;
-        if (data.getExperiment().getIdentifier().equals(experimentIdentifier.toString()))
-        {
-            return; // nothing to change
-        }
         ExperimentPE experiment = getExperimentByIdentifier(experimentIdentifier);
         data.setExperiment(experiment);
     }
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBOTest.java
index 85893f47bc4..509f200754a 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBOTest.java
@@ -404,10 +404,11 @@ public class DataBOTest extends AbstractBOTest
     public void testDefineWithExistingContainerDataSet()
     {
         final DataSetTypePE dataSetType = new DataSetTypePE();
-        ExperimentPE experimentPE = new ExperimentPE();
+        ExperimentPE experimentPE = createExperiment("EXP1");
         DataStorePE dataStore = new DataStorePE();
         prepareDefineData(dataSetType, dataStore);
         final DataPE data = new DataPE();
+        data.setExperiment(experimentPE);
         context.checking(new Expectations()
             {
                 {
@@ -435,14 +436,14 @@ public class DataBOTest extends AbstractBOTest
     public void testDefineWithNonExistingContainerDataSet()
     {
         final DataSetTypePE dataSetType = new DataSetTypePE();
-        final ExperimentPE experiment = new ExperimentPE();
+        final ExperimentPE experiment = createExperiment("EXP1");
         final DataStorePE dataStore = new DataStorePE();
         prepareDefineData(dataSetType, dataStore);
         final DataSetTypePE dataSetTypeUnknown = new DataSetTypePE();
         final DataPE containerData = new DataPE();
         containerData.setCode(PARENT_CODE);
         containerData.setDataSetType(dataSetTypeUnknown);
-        containerData.setExperiment(createExperiment("EXP1"));
+        containerData.setExperiment(experiment);
         containerData.setPlaceholder(true);
         context.checking(new Expectations()
             {
-- 
GitLab