Skip to content
Snippets Groups Projects
Commit e07c6598 authored by felmer's avatar felmer
Browse files

SSDM-2601: more project sample tests. bug in RelationshipService fixed.

SVN: 35110
parent 3ea466a0
No related branches found
No related tags found
No related merge requests found
......@@ -75,7 +75,14 @@ public class RelationshipService implements IRelationshipService, ApplicationCon
ProjectPE project)
{
SampleUtils.setSamplesSpace(experiment, project.getSpace());
SampleUtils.setSamplesProject(experiment, project);
for (SamplePE sample : experiment.getSamples())
{
if (EntityHelper.equalEntities(sample.getProject(), project) == false)
{
sample.setProject(project);
RelationshipUtils.updateModificationDateAndModifier(sample, session);
}
}
ProjectPE previousProject = experiment.getProject();
RelationshipUtils.updateModificationDateAndModifier(previousProject, session);
experiment.setProject(project);
......
......@@ -19,7 +19,6 @@ package ch.systemsx.cisd.openbis.generic.server.business.bo.util;
import ch.systemsx.cisd.common.exceptions.UserFailureException;
import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
......@@ -40,17 +39,6 @@ public class SampleUtils
}
}
public static void setSamplesProject(ExperimentPE experiment, ProjectPE project)
{
for (SamplePE sample : experiment.getSamples())
{
if (sample.getProject() != null)
{
sample.setProject(project);
}
}
}
public static UserFailureException createWrongSampleException(DataPE data, SamplePE sample,
String reason)
{
......
......@@ -40,6 +40,7 @@ import ch.ethz.sis.openbis.generic.shared.api.v3.IApplicationServerApi;
import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.deletion.sample.SampleDeletionOptions;
import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.experiment.Experiment;
import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.experiment.ExperimentCreation;
import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.experiment.ExperimentUpdate;
import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.interfaces.IModificationDateHolder;
import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.interfaces.IModifierHolder;
import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.project.Project;
......@@ -414,6 +415,42 @@ public class ProjectSampleTest extends BaseTest
assertModification(project, project, now, adminUser);
}
@Test
public void testAssignExperimentWithProjectSamplesToADifferentProject()
{
String projectCode1 = createUniqueCode("P");
String projectCode2 = projectCode1 + "A";
createProjects(systemSessionToken, space1, projectCode1, projectCode2);
String experimentCode = createUniqueCode("E");
ProjectIdentifier project1 = new ProjectIdentifier("SPACE1", projectCode1);
ExperimentPermId experiment = createExperiments(systemSessionToken, project1, experimentCode).get(0);
String sampleCode = createUniqueCode("S");
SamplePermId sample = createSamples(systemSessionToken, space1, project1, experiment, sampleCode).get(0);
ExperimentUpdate experimentUpdate = new ExperimentUpdate();
experimentUpdate.setExperimentId(experiment);
experimentUpdate.setProjectId(new ProjectIdentifier("SPACE1", projectCode2));
Date now = sleep();
v3api.updateExperiments(adminSessionToken, Arrays.asList(experimentUpdate));
SampleFetchOptions fetchOptions = new SampleFetchOptions();
fetchOptions.withModifier();
fetchOptions.withSpace();
fetchOptions.withProject().withModifier();
Sample experimentSample = v3api.mapSamples(systemSessionToken, Arrays.asList(sample), fetchOptions).values().iterator().next();
assertModification(experimentSample, experimentSample, now, adminUser);
assertEquals(experimentSample.getIdentifier().getIdentifier(), "/SPACE1/" + projectCode2 + "/" + sampleCode);
Project project = experimentSample.getProject();
assertEquals(project.getIdentifier().getIdentifier(), "/SPACE1/" + projectCode2);
assertModification(project, project, now, adminUser);
ExperimentFetchOptions experimentFetchOptions = new ExperimentFetchOptions();
experimentFetchOptions.withModifier();
Experiment sampleExperiment = v3api.mapExperiments(systemSessionToken, Arrays.asList(experiment),
experimentFetchOptions).values().iterator().next();
assertModification(sampleExperiment, sampleExperiment, now, adminUser);
}
@Test
public void testUnassignProjectSampleFromProject()
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment