From f14bf13bddb62c7ca2c2675e0db3422cbe4c55c5 Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Mon, 14 Jan 2013 16:33:53 +0000 Subject: [PATCH] SP-207 BIS-124 fix sample bulider to not remove parents on performing updates SVN: 28088 --- .../systemtest/UnassignSampleFromSpaceTest.java | 12 ++++++++++++ .../systemtest/UpdateSampleParentsTest.java | 3 +-- .../base/builder/SampleUpdateBuilder.java | 16 ++++++++++++---- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/UnassignSampleFromSpaceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/UnassignSampleFromSpaceTest.java index 8a72af8918b..e740527b979 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/UnassignSampleFromSpaceTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/UnassignSampleFromSpaceTest.java @@ -109,6 +109,18 @@ public class UnassignSampleFromSpaceTest extends BaseTest assertThat(parent, is(inSpace(space))); } + @Test(expectedExceptions = + { UserFailureException.class }) + public void childSampleCantBeUnassignedFromSpace() throws Exception + { + Sample parent = create(aSample().inExperiment(experiment)); + Sample child = create(aSample().withParent(parent).inExperiment(experiment)); + + perform(anUpdateOf(child).removingSpace()); + + assertThat(child, hasNoSpace()); + } + @Test public void parentSampleCanBeUnassignedFromSpace() throws Exception { diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/UpdateSampleParentsTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/UpdateSampleParentsTest.java index f327e7b9987..f06dedd2735 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/UpdateSampleParentsTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/UpdateSampleParentsTest.java @@ -108,7 +108,6 @@ public class UpdateSampleParentsTest extends BaseTest Sample sample = create(aSample().inSpace(space)); perform(anUpdateOf(sample).toHaveParent(sample)); - } @Test(expectedExceptions = @@ -133,7 +132,7 @@ public class UpdateSampleParentsTest extends BaseTest perform(anUpdateOf(child).toHaveParent(parent)); } - @Test(groups = "broken", expectedExceptions = + @Test(expectedExceptions = { UserFailureException.class }) public void childCannotBeShared() throws Exception { diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/builder/SampleUpdateBuilder.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/builder/SampleUpdateBuilder.java index cd3fbf6e84d..2199f58f7d7 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/builder/SampleUpdateBuilder.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/base/builder/SampleUpdateBuilder.java @@ -64,7 +64,7 @@ public class SampleUpdateBuilder extends UpdateBuilder<SampleUpdatesDTO> } this.version = sample.getVersion(); this.sampleIdentifier = id(sample); - this.parents = new ArrayList<Sample>(); + this.parents = null; this.container = null; } @@ -105,6 +105,10 @@ public class SampleUpdateBuilder extends UpdateBuilder<SampleUpdatesDTO> public SampleUpdateBuilder toHaveParents(Sample... samples) { + if (this.parents == null) + { + this.parents = new ArrayList<Sample>(); + } for (Sample parent : samples) { this.parents.add(parent); @@ -134,10 +138,14 @@ public class SampleUpdateBuilder extends UpdateBuilder<SampleUpdatesDTO> @Override public SampleUpdatesDTO create() { - String[] parentIdentifiers = new String[this.parents.size()]; - for (int i = 0; i < this.parents.size(); i++) + String[] parentIdentifiers = null; + if (this.parents != null) { - parentIdentifiers[i] = this.parents.get(i).getIdentifier(); + parentIdentifiers = new String[this.parents.size()]; + for (int i = 0; i < this.parents.size(); i++) + { + parentIdentifiers[i] = this.parents.get(i).getIdentifier(); + } } return new SampleUpdatesDTO(this.sampleId, new ArrayList<IEntityProperty>(), this.experimentId, new ArrayList<NewAttachment>(), this.version, -- GitLab