diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/sample/SampleTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/sample/SampleTranslator.java index 848778ea325f56a3421cd062afff1846886606d9..d3977bba86c7be408c84c28d92e5d54b476f925a 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/sample/SampleTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/sample/SampleTranslator.java @@ -152,12 +152,12 @@ public class SampleTranslator extends AbstractCachingTranslator<SamplePE, Sample result.getFetchOptions().fetchContained(getFetchOptions().fetchContained()); } - if (getFetchOptions().hasSampleType()) + if (getFetchOptions().hasType()) { SampleType sampleType = - new SampleTypeTranslator(getTranslationContext(), getFetchOptions().fetchSampleType()).translate(samplePe.getSampleType()); - result.setSampleType(sampleType); - result.getFetchOptions().fetchSampleType(getFetchOptions().fetchSampleType()); + new SampleTypeTranslator(getTranslationContext(), getFetchOptions().fetchType()).translate(samplePe.getSampleType()); + result.setType(sampleType); + result.getFetchOptions().fetchType(getFetchOptions().fetchType()); } if (getFetchOptions().hasTags()) diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AbstractTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AbstractTest.java index c7c636c6469c5978267b8ac6b3d4b2d459fe627f..e4f940d01e60a29613cce0d91548fe528fb112df 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AbstractTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/AbstractTest.java @@ -20,6 +20,7 @@ import static org.testng.Assert.assertNotNull; import static org.testng.Assert.fail; import java.lang.reflect.Method; +import java.util.Collection; import org.apache.log4j.Level; import org.apache.log4j.Logger; @@ -441,4 +442,20 @@ public class AbstractTest extends SystemTestCase } } + protected void assertContainSameObjects(Collection<?> c1, Collection<?> c2, int expectedSameObjectCount) + { + int count = 0; + for (Object o1 : c1) + { + for (Object o2 : c2) + { + if (o1 == o2) + { + count++; + } + } + } + assertEquals(count, expectedSameObjectCount); + } + } diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/CreateSampleTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/CreateSampleTest.java index c0093cdeeb505b7fba00e9bacf7048f0ecbdbcba..ede10d329ddee1e3f884d8da9184a69c0b074708 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/CreateSampleTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/CreateSampleTest.java @@ -206,7 +206,7 @@ public class CreateSampleTest extends AbstractSampleTest Arrays.asList(samp1, samp2, sampleWithOutSpace)); SampleFetchOptions fetchOptions = new SampleFetchOptions(); - fetchOptions.fetchSampleType(); + fetchOptions.fetchType(); fetchOptions.fetchSpace(); fetchOptions.fetchRegistrator(); fetchOptions.fetchAttachments().fetchContent(); @@ -219,7 +219,7 @@ public class CreateSampleTest extends AbstractSampleTest Sample sampleWithSpace1 = samples.get(0); assertEquals(sampleWithSpace1.getCode(), "SAMPLE_WITH_SPACE1"); - assertEquals(sampleWithSpace1.getSampleType().getCode(), "CELL_PLATE"); + assertEquals(sampleWithSpace1.getType().getCode(), "CELL_PLATE"); assertEquals(sampleWithSpace1.getSpace().getPermId().getPermId(), "CISD"); assertEquals(sampleWithSpace1.getIdentifier().getIdentifier(), "/CISD/MP002-1:SAMPLE_WITH_SPACE1"); assertEquals(sampleWithSpace1.getRegistrator().getUserId(), TEST_USER); @@ -236,7 +236,7 @@ public class CreateSampleTest extends AbstractSampleTest Sample sampleWithSpace2 = samples.get(1); assertEquals(sampleWithSpace2.getCode(), "SAMPLE_WITH_SPACE2"); - assertEquals(sampleWithSpace2.getSampleType().getCode(), "CELL_PLATE"); + assertEquals(sampleWithSpace2.getType().getCode(), "CELL_PLATE"); assertEquals(sampleWithSpace2.getSpace().getPermId().getPermId(), "CISD"); assertEquals(sampleWithSpace2.getIdentifier().getIdentifier(), "/CISD/MP002-1:SAMPLE_WITH_SPACE2"); assertEquals(sampleWithSpace2.getRegistrator().getUserId(), TEST_USER); @@ -251,7 +251,7 @@ public class CreateSampleTest extends AbstractSampleTest Sample sampleWithoutSpace = samples.get(2); assertEquals(sampleWithoutSpace.getCode(), "SAMPLE_WITHOUT_SPACE"); - assertEquals(sampleWithoutSpace.getSampleType().getCode(), "CELL_PLATE"); + assertEquals(sampleWithoutSpace.getType().getCode(), "CELL_PLATE"); assertEquals(sampleWithoutSpace.getSpace(), null); assertEquals(sampleWithoutSpace.getIdentifier().getIdentifier(), "/SAMPLE_WITHOUT_SPACE"); assertEquals(sampleWithoutSpace.getRegistrator().getUserId(), TEST_USER); diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/MapExperimentTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/MapExperimentTest.java index edadbae8aa73217e868923203070b505dcfb8357..fffbdf34fe71959a96d65b5183a7261f7393e3d1 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/MapExperimentTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/MapExperimentTest.java @@ -18,6 +18,8 @@ package ch.ethz.sis.openbis.systemtest.api.v3; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertTrue; +import static org.testng.Assert.assertFalse; import java.text.SimpleDateFormat; import java.util.Arrays; @@ -192,6 +194,8 @@ public class MapExperimentTest extends AbstractExperimentTest assertEquals(map.get(permId1).getPermId(), permId1); assertEquals(map.get(identifier2).getIdentifier(), identifier2); + assertTrue(map.get(identifier1) == map.get(permId1)); + v3api.logout(sessionToken); } @@ -288,6 +292,30 @@ public class MapExperimentTest extends AbstractExperimentTest v3api.logout(sessionToken); } + @Test + public void testMapExperimentsWithTypeReused() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + ExperimentFetchOptions fetchOptions = new ExperimentFetchOptions(); + fetchOptions.fetchType(); + + ExperimentIdentifier identifier1 = new ExperimentIdentifier("/CISD/NEMO/EXP1"); + ExperimentIdentifier identifier2 = new ExperimentIdentifier("/CISD/NEMO/EXP11"); + + Map<IExperimentId, Experiment> map = v3api.mapExperiments(sessionToken, Arrays.asList(identifier1, identifier2), fetchOptions); + + assertEquals(2, map.size()); + Experiment experiment1 = map.get(identifier1); + Experiment experiment2 = map.get(identifier2); + + assertFalse(experiment1 == experiment2); + assertEquals(experiment1.getType().getCode(), "SIRNA_HCS"); + assertEquals(experiment2.getType().getCode(), "SIRNA_HCS"); + assertTrue(experiment1.getType() == experiment2.getType()); + + v3api.logout(sessionToken); + } + @Test public void testMapExperimentsWithAttachment() { @@ -359,6 +387,30 @@ public class MapExperimentTest extends AbstractExperimentTest v3api.logout(sessionToken); } + @Test() + public void testMapExperimentsWithProjectReused() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + ExperimentFetchOptions fetchOptions = new ExperimentFetchOptions(); + fetchOptions.fetchProject(); + + ExperimentIdentifier identifier1 = new ExperimentIdentifier("/CISD/NEMO/EXP1"); + ExperimentIdentifier identifier2 = new ExperimentIdentifier("/CISD/NEMO/EXP11"); + + Map<IExperimentId, Experiment> map = v3api.mapExperiments(sessionToken, Arrays.asList(identifier1, identifier2), fetchOptions); + + assertEquals(2, map.size()); + Experiment experiment1 = map.get(identifier1); + Experiment experiment2 = map.get(identifier2); + + assertFalse(experiment1 == experiment2); + assertEquals(experiment1.getProject().getCode(), "NEMO"); + assertEquals(experiment2.getProject().getCode(), "NEMO"); + assertTrue(experiment1.getProject() == experiment2.getProject()); + + v3api.logout(sessionToken); + } + @Test public void testMapExperimentsWithProperties() { @@ -419,6 +471,30 @@ public class MapExperimentTest extends AbstractExperimentTest v3api.logout(sessionToken); } + @Test() + public void testMapExperimentsWithRegistratorReused() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + ExperimentFetchOptions fetchOptions = new ExperimentFetchOptions(); + fetchOptions.fetchRegistrator(); + + ExperimentIdentifier identifier1 = new ExperimentIdentifier("/CISD/NEMO/EXP1"); + ExperimentIdentifier identifier2 = new ExperimentIdentifier("/CISD/NEMO/EXP11"); + + Map<IExperimentId, Experiment> map = v3api.mapExperiments(sessionToken, Arrays.asList(identifier1, identifier2), fetchOptions); + + assertEquals(2, map.size()); + Experiment experiment1 = map.get(identifier1); + Experiment experiment2 = map.get(identifier2); + + assertFalse(experiment1 == experiment2); + assertEquals(experiment1.getRegistrator().getUserId(), "test"); + assertEquals(experiment2.getRegistrator().getUserId(), "test"); + assertTrue(experiment1.getRegistrator() == experiment2.getRegistrator()); + + v3api.logout(sessionToken); + } + @Test public void testMapExperimentsWithModifier() { @@ -448,6 +524,30 @@ public class MapExperimentTest extends AbstractExperimentTest v3api.logout(sessionToken); } + @Test() + public void testMapExperimentsWithModifierReused() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + ExperimentFetchOptions fetchOptions = new ExperimentFetchOptions(); + fetchOptions.fetchModifier(); + + ExperimentIdentifier identifier1 = new ExperimentIdentifier("/CISD/NEMO/EXP1"); + ExperimentIdentifier identifier2 = new ExperimentIdentifier("/CISD/NEMO/EXP10"); + + Map<IExperimentId, Experiment> map = v3api.mapExperiments(sessionToken, Arrays.asList(identifier1, identifier2), fetchOptions); + + assertEquals(2, map.size()); + Experiment experiment1 = map.get(identifier1); + Experiment experiment2 = map.get(identifier2); + + assertFalse(experiment1 == experiment2); + assertEquals(experiment1.getModifier().getUserId(), "test_role"); + assertEquals(experiment2.getModifier().getUserId(), "test_role"); + assertTrue(experiment1.getModifier() == experiment2.getModifier()); + + v3api.logout(sessionToken); + } + @Test public void testMapExperimentsWithTags() { @@ -483,4 +583,26 @@ public class MapExperimentTest extends AbstractExperimentTest v3api.logout(sessionToken); } + @Test + public void testMapExperimentsWithTagsReused() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + ExperimentFetchOptions fetchOptions = new ExperimentFetchOptions(); + fetchOptions.fetchTags(); + + ExperimentPermId permId1 = new ExperimentPermId("200811050952663-1030"); + ExperimentPermId permId2 = new ExperimentPermId("201206190940555-1032"); + + Map<IExperimentId, Experiment> map = v3api.mapExperiments(sessionToken, Arrays.asList(permId1, permId2), fetchOptions); + + assertEquals(2, map.size()); + Experiment experiment1 = map.get(permId1); + Experiment experiment2 = map.get(permId2); + + assertEquals(experiment1.getTags().size(), 2); + assertEquals(experiment2.getTags().size(), 1); + assertContainSameObjects(experiment1.getTags(), experiment2.getTags(), 1); + + v3api.logout(sessionToken); + } } diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/MapSampleTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/MapSampleTest.java index 3434c199b3448e8eb8cb0d0641546f4266004854..d2daae558ec1aa8689f7938c5427390d64f038b8 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/MapSampleTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/MapSampleTest.java @@ -189,6 +189,39 @@ public class MapSampleTest extends AbstractSampleTest assertEquals(map.get(permId1).getPermId(), permId1); assertEquals(map.get(identifier2).getIdentifier(), identifier2); + assertTrue(map.get(identifier1) == map.get(permId1)); + + v3api.logout(sessionToken); + } + + @Test + public void testMapSamplesByUnauthorizedIds() + { + SampleIdentifier identifier1 = new SampleIdentifier("/CISD/CP-TEST-1"); + SampleIdentifier identifier2 = new SampleIdentifier("/TEST-SPACE/CP-TEST-4"); + SampleIdentifier identifier3 = new SampleIdentifier("/CISD/CP-TEST-2"); + SampleIdentifier identifier4 = new SampleIdentifier("/TEST-SPACE/EV-TEST"); + + List<? extends ISampleId> ids = Arrays.asList(identifier1, identifier2, identifier3, identifier4); + + String sessionToken = v3api.login(TEST_USER, PASSWORD); + Map<ISampleId, Sample> map = v3api.mapSamples(sessionToken, ids, new SampleFetchOptions()); + + assertEquals(map.size(), 4); + v3api.logout(sessionToken); + + sessionToken = v3api.login(TEST_SPACE_USER, PASSWORD); + map = v3api.mapSamples(sessionToken, ids, new SampleFetchOptions()); + + assertEquals(map.size(), 2); + + Iterator<Sample> iter = map.values().iterator(); + assertEquals(iter.next().getIdentifier(), identifier2); + assertEquals(iter.next().getIdentifier(), identifier4); + + assertEquals(map.get(identifier2).getIdentifier(), identifier2); + assertEquals(map.get(identifier4).getIdentifier(), identifier4); + v3api.logout(sessionToken); } @@ -263,7 +296,32 @@ public class MapSampleTest extends AbstractSampleTest } @Test - public void testMapSampleWithTags() + public void testMapSamplesWithModifierReused() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + + SampleFetchOptions fetchOptions = new SampleFetchOptions(); + fetchOptions.fetchModifier(); + + SamplePermId permId1 = new SamplePermId("200811050919915-8"); + SamplePermId permId2 = new SamplePermId("200902091219327-1025"); + + Map<ISampleId, Sample> map = v3api.mapSamples(sessionToken, Arrays.asList(permId1, permId2), fetchOptions); + + assertEquals(2, map.size()); + Sample sample1 = map.get(permId1); + Sample sample2 = map.get(permId2); + + assertFalse(sample1 == sample2); + assertEquals(sample1.getModifier().getUserId(), "test_role"); + assertEquals(sample2.getModifier().getUserId(), "test_role"); + assertTrue(sample1.getModifier() == sample2.getModifier()); + + v3api.logout(sessionToken); + } + + @Test + public void testMapSamplesWithTags() { String sessionToken = v3api.login(TEST_USER, PASSWORD); SampleFetchOptions fetchOptions = new SampleFetchOptions(); @@ -300,6 +358,31 @@ public class MapSampleTest extends AbstractSampleTest v3api.logout(sessionToken); } + @Test + public void testMapSamplesWithTagsReused() + { + String sessionToken = v3api.login(TEST_SPACE_USER, PASSWORD); + + SampleFetchOptions fetchOptions = new SampleFetchOptions(); + fetchOptions.fetchTags(); + + SamplePermId permId1 = new SamplePermId("201206191219327-1054"); + SamplePermId permId2 = new SamplePermId("201206191219327-1055"); + + Map<ISampleId, Sample> map = v3api.mapSamples(sessionToken, Arrays.asList(permId1, permId2), fetchOptions); + + assertEquals(map.size(), 2); + Sample sample1 = map.get(permId1); + Sample sample2 = map.get(permId2); + + assertFalse(sample1 == sample2); + assertEquals(sample1.getTags().size(), 1); + assertEquals(sample2.getTags().size(), 1); + assertContainSameObjects(sample1.getTags(), sample2.getTags(), 1); + + v3api.logout(sessionToken); + } + public void testMapSamplesWithSpace() { String sessionToken = v3api.login(TEST_USER, PASSWORD); @@ -319,6 +402,31 @@ public class MapSampleTest extends AbstractSampleTest v3api.logout(sessionToken); } + @Test + public void testMapSamplesWithSpaceReused() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + + SampleFetchOptions fetchOptions = new SampleFetchOptions(); + fetchOptions.fetchSpace(); + + SamplePermId permId1 = new SamplePermId("201206191219327-1054"); + SamplePermId permId2 = new SamplePermId("201206191219327-1055"); + + Map<ISampleId, Sample> map = v3api.mapSamples(sessionToken, Arrays.asList(permId1, permId2), fetchOptions); + + assertEquals(2, map.size()); + Sample sample1 = map.get(permId1); + Sample sample2 = map.get(permId2); + + assertFalse(sample1 == sample2); + assertEquals(sample1.getSpace().getCode(), "TEST-SPACE"); + assertEquals(sample2.getSpace().getCode(), "TEST-SPACE"); + assertTrue(sample1.getSpace() == sample2.getSpace()); + + v3api.logout(sessionToken); + } + @Test public void testMapSamplesWithParentsAndProperties() { @@ -422,6 +530,31 @@ public class MapSampleTest extends AbstractSampleTest v3api.logout(sessionToken); } + @Test + public void testMapSamplesWithParentsReused() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + + SampleFetchOptions fetchOptions = new SampleFetchOptions(); + fetchOptions.fetchParents(); + + SamplePermId permId1 = new SamplePermId("200811050946559-980"); + SamplePermId permId2 = new SamplePermId("200811050946559-982"); + + Map<ISampleId, Sample> map = v3api.mapSamples(sessionToken, Arrays.asList(permId1, permId2), fetchOptions); + + assertEquals(2, map.size()); + Sample sample1 = map.get(permId1); + Sample sample2 = map.get(permId2); + + assertFalse(sample1 == sample2); + assertEquals(sample1.getParents().size(), 2); + assertEquals(sample2.getParents().size(), 1); + assertContainSameObjects(sample1.getParents(), sample2.getParents(), 1); + + v3api.logout(sessionToken); + } + @Test public void testMapSamplesWithChildren() { @@ -455,6 +588,31 @@ public class MapSampleTest extends AbstractSampleTest v3api.logout(sessionToken); } + @Test + public void testMapSamplesWithChildrenReused() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + + SampleFetchOptions fetchOptions = new SampleFetchOptions(); + fetchOptions.fetchChildren(); + + SamplePermId permId1 = new SamplePermId("200811050944030-975"); + SamplePermId permId2 = new SamplePermId("200811050945092-976"); + + Map<ISampleId, Sample> map = v3api.mapSamples(sessionToken, Arrays.asList(permId1, permId2), fetchOptions); + + assertEquals(2, map.size()); + Sample sample1 = map.get(permId1); + Sample sample2 = map.get(permId2); + + assertFalse(sample1 == sample2); + assertEquals(sample1.getChildren().size(), 1); + assertEquals(sample2.getChildren().size(), 4); + assertContainSameObjects(sample1.getChildren(), sample2.getChildren(), 1); + + v3api.logout(sessionToken); + } + @Test public void testMapSamplesWithContainer() { @@ -495,6 +653,31 @@ public class MapSampleTest extends AbstractSampleTest v3api.logout(sessionToken); } + @Test + public void testMapSamplesWithContainerReused() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + + SampleFetchOptions fetchOptions = new SampleFetchOptions(); + fetchOptions.fetchContainer(); + + SamplePermId permId1 = new SamplePermId("200811050919915-9"); + SamplePermId permId2 = new SamplePermId("200811050919915-10"); + + Map<ISampleId, Sample> map = v3api.mapSamples(sessionToken, Arrays.asList(permId1, permId2), fetchOptions); + + assertEquals(2, map.size()); + Sample sample1 = map.get(permId1); + Sample sample2 = map.get(permId2); + + assertFalse(sample1 == sample2); + assertEquals(sample1.getContainer().getCode(), "CL1"); + assertEquals(sample2.getContainer().getCode(), "CL1"); + assertTrue(sample1.getContainer() == sample2.getContainer()); + + v3api.logout(sessionToken); + } + /** * Test that translation can handle reference loops */ @@ -572,6 +755,32 @@ public class MapSampleTest extends AbstractSampleTest v3api.logout(sessionToken); } + @Test + public void testMapSamplesWithExperimentReused() + { + String sessionToken = v3api.login(TEST_USER, PASSWORD); + + SampleFetchOptions fetchOptions = new SampleFetchOptions(); + fetchOptions.fetchExperiment(); + + SamplePermId permId1 = new SamplePermId("201206191219327-1054"); + SamplePermId permId2 = new SamplePermId("201206191219327-1055"); + + Map<ISampleId, Sample> map = v3api.mapSamples(sessionToken, Arrays.asList(permId1, permId2), fetchOptions); + + assertEquals(2, map.size()); + + Sample sample1 = map.get(permId1); + Sample sample2 = map.get(permId2); + + assertFalse(sample1 == sample2); + assertEquals(sample1.getExperiment().getCode(), "EXP-SPACE-TEST"); + assertEquals(sample2.getExperiment().getCode(), "EXP-SPACE-TEST"); + assertTrue(sample1.getExperiment() == sample2.getExperiment()); + + v3api.logout(sessionToken); + } + @Test public void testMapSamplesWithMultipleFetchOptions() { @@ -610,7 +819,7 @@ public class MapSampleTest extends AbstractSampleTest SampleFetchOptions fetchOptions = new SampleFetchOptions(); // fetch parents and their properties - fetchOptions.fetchSampleType(); + fetchOptions.fetchType(); Map<ISampleId, Sample> map = v3api.mapSamples(sessionToken, Collections.singletonList(new SamplePermId("200811050946559-979")), fetchOptions); @@ -621,7 +830,7 @@ public class MapSampleTest extends AbstractSampleTest Sample sample = samples.get(0); assertEquals(sample.getIdentifier().toString(), "/CISD/3VCP5"); - SampleType type = sample.getSampleType(); + SampleType type = sample.getType(); assertEquals(type.getCode(), "CELL_PLATE"); assertEquals(type.getDescription(), "Cell Plate"); assertTrue(type.isListable()); @@ -638,46 +847,27 @@ public class MapSampleTest extends AbstractSampleTest } @Test - public void testMapSamplesWithUnauthorizedSpace() + public void testMapSamplesWithTypeReused() { String sessionToken = v3api.login(TEST_USER, PASSWORD); - Map<ISampleId, Sample> map = v3api.mapSamples(sessionToken, Arrays.asList(new SampleIdentifier("/CISD/CP-TEST-1")), new SampleFetchOptions()); - List<Sample> samples = new ArrayList<Sample>(map.values()); - - assertEquals(samples.size(), 1); - v3api.logout(sessionToken); - sessionToken = v3api.login(TEST_SPACE_USER, PASSWORD); - map = v3api.mapSamples(sessionToken, Arrays.asList(new SampleIdentifier("/CISD/CP-TEST-1")), new SampleFetchOptions()); - samples = new ArrayList<Sample>(map.values()); - - assertEquals(samples.size(), 0); - v3api.logout(sessionToken); - } - - @Test - public void testMapSamplesOrder() - { - String sessionToken = v3api.login(TEST_USER, PASSWORD); SampleFetchOptions fetchOptions = new SampleFetchOptions(); + fetchOptions.fetchType(); - // fetch parents and their properties - fetchOptions.fetchSampleType(); + SamplePermId permId1 = new SamplePermId("200902091219327-1025"); + SamplePermId permId2 = new SamplePermId("200902091250077-1026"); - Map<ISampleId, Sample> map = - v3api.mapSamples(sessionToken, - Arrays.asList( - new SamplePermId("200811050946559-979"), - new SampleIdentifier("/CISD/MP002-1"), - new SamplePermId("200811050919915-8") - ), fetchOptions); - List<Sample> samples = new ArrayList<Sample>(map.values()); + Map<ISampleId, Sample> map = v3api.mapSamples(sessionToken, Arrays.asList(permId1, permId2), fetchOptions); + + assertEquals(2, map.size()); + Sample sample1 = map.get(permId1); + Sample sample2 = map.get(permId2); - assertEquals(samples.get(0).getPermId(), new SamplePermId("200811050946559-979")); - assertEquals(samples.get(1).getIdentifier(), new SampleIdentifier("/CISD/MP002-1")); - assertEquals(samples.get(2).getPermId(), new SamplePermId("200811050919915-8")); + assertFalse(sample1 == sample2); + assertEquals(sample1.getType().getCode(), "CELL_PLATE"); + assertEquals(sample2.getType().getCode(), "CELL_PLATE"); + assertTrue(sample1.getType() == sample2.getType()); - assertEquals(samples.size(), 3); v3api.logout(sessionToken); } diff --git a/openbis/sourceTest/sql/postgresql/143/028=experiments_all.tsv b/openbis/sourceTest/sql/postgresql/143/028=experiments_all.tsv index 4348f98c0f0638cd45205a5853183858d1811b78..a0375d74be8b922dcef5715716b23aefda2ae01b 100644 --- a/openbis/sourceTest/sql/postgresql/143/028=experiments_all.tsv +++ b/openbis/sourceTest/sql/postgresql/143/028=experiments_all.tsv @@ -1,5 +1,5 @@ 2 EXP1 1 2 2008-11-05 09:21:51.882+01 3 \N f 2009-03-18 10:50:19.475958+01 200811050951882-1028 6 0 \N -3 EXP10 1 2 2008-11-05 09:21:52.663+01 3 \N f 2009-03-18 10:50:19.475958+01 200811050952663-1029 \N 0 \N +3 EXP10 1 2 2008-11-05 09:21:52.663+01 3 \N f 2009-03-18 10:50:19.475958+01 200811050952663-1029 6 0 \N 4 EXP11 1 2 2008-11-05 09:21:52.663+01 3 \N f 2009-03-18 10:50:19.475958+01 200811050952663-1030 \N 0 \N 6 EXP-X 1 2 2008-11-05 09:22:37.246+01 1 4 f 2009-03-18 10:50:19.475958+01 200811050937246-1031 \N 0 \N 8 EXP-REUSE 1 2 2008-11-05 09:22:40.555+01 1 \N f 2009-03-18 10:50:19.475958+01 200811050940555-1032 \N 0 \N diff --git a/openbis/sourceTest/sql/postgresql/143/057=samples_all.tsv b/openbis/sourceTest/sql/postgresql/143/057=samples_all.tsv index 59ea106bbfb25acc6daae1ccd9e209162a9cf83c..9974960fcf1743fce26fe02825695ab0d4e670ee 100644 --- a/openbis/sourceTest/sql/postgresql/143/057=samples_all.tsv +++ b/openbis/sourceTest/sql/postgresql/143/057=samples_all.tsv @@ -1015,7 +1015,7 @@ 1031 RP2-A1X 4 2008-11-05 09:22:31.564+01 2 \N 1 \N 2009-03-18 10:50:19.475958+01 8 200811050931564-1023 \N RP2-A1X,-1,1,-1 \N 0 \N 1032 EMPTY-MP 1 2008-11-05 09:22:43.584+01 2 \N 1 \N 2009-03-18 10:50:19.475958+01 \N 200811050943584-1024 \N EMPTY-MP,-1,1,-1 \N 0 \N 1044 CP-TEST-3 3 2009-02-09 12:16:25.616106+01 2 \N 1 \N 2009-03-18 10:50:19.475958+01 20 200902091225616-1027 \N CP-TEST-3,-1,1,-1 \N 0 \N -1042 CP-TEST-1 3 2009-02-09 12:09:19.327518+01 2 \N 1 \N 2009-08-18 17:54:11.56+02 18 200902091219327-1025 \N CP-TEST-1,-1,1,-1 \N 0 \N +1042 CP-TEST-1 3 2009-02-09 12:09:19.327518+01 2 \N 1 \N 2009-08-18 17:54:11.56+02 18 200902091219327-1025 6 CP-TEST-1,-1,1,-1 \N 0 \N 1043 CP-TEST-2 3 2009-02-09 12:09:50.077973+01 2 \N 1 \N 2009-08-18 17:54:36.929+02 19 200902091250077-1026 \N CP-TEST-2,-1,1,-1 \N 0 \N 988 3VCP7 3 2008-11-05 09:21:46.559+01 2 \N 1 \N 2010-10-25 14:48:36.245+02 \N 200811050946559-981 \N 3VCP7,-1,1,-1 \N 0 \N 1050 PLATE_WELLSEARCH 3 2009-02-09 12:09:50.077973+01 2 \N 1 \N 2009-08-18 17:54:36.929+02 21 200902091250077-1050 \N PLATE_WELLSEARCH,-1,1,-1 \N 0 \N diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/sample/Sample.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/sample/Sample.java index d30b55f3ecb744b63f7b7173d9f6c898f2b0903b..2c5e3144ec690b9648b9123fb6d9d16f6861b112 100644 --- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/sample/Sample.java +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/sample/Sample.java @@ -62,7 +62,7 @@ public class Sample implements Serializable private Date modificationDate; @JsonProperty - private SampleType sampleType; + private SampleType type; @JsonProperty private Space space; @@ -164,11 +164,11 @@ public class Sample implements Serializable } @JsonIgnore - public SampleType getSampleType() + public SampleType getType() { - if (getFetchOptions().hasSampleType()) + if (getFetchOptions().hasType()) { - return sampleType; + return type; } else { @@ -176,9 +176,9 @@ public class Sample implements Serializable } } - public void setSampleType(SampleType sampleType) + public void setType(SampleType type) { - this.sampleType = sampleType; + this.type = type; } @JsonIgnore diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/sample/SampleFetchOptions.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/sample/SampleFetchOptions.java index d4cff2a4e35eada527f7b48f6aca9742ee37a785..9a8e027a1498b08bd0aa7b61eab329d349799ca4 100644 --- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/sample/SampleFetchOptions.java +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/sample/SampleFetchOptions.java @@ -36,7 +36,7 @@ public class SampleFetchOptions implements Serializable private static final long serialVersionUID = 1L; @JsonProperty - private SampleTypeFetchOptions sampleType; + private SampleTypeFetchOptions type; @JsonProperty private SpaceFetchOptions space; @@ -71,23 +71,23 @@ public class SampleFetchOptions implements Serializable @JsonProperty private AttachmentFetchOptions attachments; - public SampleTypeFetchOptions fetchSampleType() + public SampleTypeFetchOptions fetchType() { - if (sampleType == null) + if (type == null) { - sampleType = new SampleTypeFetchOptions(); + type = new SampleTypeFetchOptions(); } - return sampleType; + return type; } - public SampleTypeFetchOptions fetchSampleType(SampleTypeFetchOptions fetchOptions) + public SampleTypeFetchOptions fetchType(SampleTypeFetchOptions fetchOptions) { - return sampleType = fetchOptions; + return type = fetchOptions; } - public boolean hasSampleType() + public boolean hasType() { - return sampleType != null; + return type != null; } public SpaceFetchOptions fetchSpace()