From 99407eabba6f246432cd34e86be3bd099a4a1d7c Mon Sep 17 00:00:00 2001 From: alaskowski <alaskowski@ethz.ch> Date: Tue, 1 Aug 2023 14:20:12 +0200 Subject: [PATCH] SSDM-55: Fixed SamplePropertyTranslator --- .../translator/property/SamplePropertyTranslator.java | 11 +++++++---- .../systemtest/asapi/v3/UpdateDataSetTest.java | 6 ++++-- .../systemtest/asapi/v3/UpdateExperimentTest.java | 8 ++++---- .../openbis/systemtest/asapi/v3/UpdateSampleTest.java | 6 ++++-- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/property/SamplePropertyTranslator.java b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/property/SamplePropertyTranslator.java index 158cda52d2e..fcd83e2a3a6 100644 --- a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/property/SamplePropertyTranslator.java +++ b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/property/SamplePropertyTranslator.java @@ -56,11 +56,14 @@ public abstract class SamplePropertyTranslator extends Map<Long, Map<String, List<Sample>>> samplePropertiesTmp = new HashMap<Long, Map<String, List<Sample>>>(); for (SamplePropertyRecord record : records) { - Map<String, List<Sample>> properties = - samplePropertiesTmp.computeIfAbsent(record.objectId, k -> new HashMap<>()); Sample sample = samples.get(record.propertyValue); - properties.computeIfAbsent(record.propertyCode, x -> new ArrayList<>()); - properties.get(record.propertyCode).add(sample); + if(sample != null) + { + Map<String, List<Sample>> properties = + samplePropertiesTmp.computeIfAbsent(record.objectId, k -> new HashMap<>()); + properties.computeIfAbsent(record.propertyCode, x -> new ArrayList<>()); + properties.get(record.propertyCode).add(sample); + } } for(Map.Entry<Long, Map<String, List<Sample>>> entry : samplePropertiesTmp.entrySet()) { diff --git a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateDataSetTest.java b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateDataSetTest.java index 9c19f0fae51..54ff31f8483 100644 --- a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateDataSetTest.java +++ b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateDataSetTest.java @@ -1211,7 +1211,8 @@ public class UpdateDataSetTest extends AbstractDataSetTest fetchOptions.withSampleProperties(); DataSet dataSet = v3api.getDataSets(sessionToken, Arrays.asList(dataSetPermId), fetchOptions).get(dataSetPermId); assertEquals(dataSet.getProperties().toString(), "{" + propertyType.getPermId() + "=200811050924898-997}"); - assertEquals(dataSet.getSampleProperties().toString(), "{" + propertyType.getPermId() + "=Sample 200811050924898-997}"); + assertEquals(dataSet.getSampleProperties().get(propertyType.getPermId()).length, 1); + assertEquals(dataSet.getSampleProperties().get(propertyType.getPermId())[0].toString(), "Sample 200811050924898-997"); } @Test @@ -1241,7 +1242,8 @@ public class UpdateDataSetTest extends AbstractDataSetTest fetchOptions.withHistory().withAuthor(); DataSet dataSet = v3api.getDataSets(sessionToken, Arrays.asList(dataSetPermId), fetchOptions).get(dataSetPermId); assertEquals(dataSet.getProperties().toString(), "{" + propertyType.getPermId() + "=200811050924898-997}"); - assertEquals(dataSet.getSampleProperties().toString(), "{" + propertyType.getPermId() + "=Sample 200811050924898-997}"); + assertEquals(dataSet.getSampleProperties().get(propertyType.getPermId()).length, 1); + assertEquals(dataSet.getSampleProperties().get(propertyType.getPermId())[0].toString(), "Sample 200811050924898-997"); List<HistoryEntry> history = dataSet.getHistory(); assertEquals(history.size(), 3); diff --git a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateExperimentTest.java b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateExperimentTest.java index 0d9f8c5aa99..a3b707013a2 100644 --- a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateExperimentTest.java +++ b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateExperimentTest.java @@ -1157,8 +1157,8 @@ public class UpdateExperimentTest extends AbstractExperimentTest .get(experimentPermId); assertEquals(experiment.getProperties().toString(), "{" + propertyType.getPermId() + "=200811050924898-997}"); - assertEquals(experiment.getSampleProperties().toString(), - "{" + propertyType.getPermId() + "=Sample 200811050924898-997}"); + assertEquals(experiment.getSampleProperties().get(propertyType.getPermId()).length, 1); + assertEquals(experiment.getSampleProperties().get(propertyType.getPermId())[0].toString(), "Sample 200811050924898-997"); } @Test @@ -1193,8 +1193,8 @@ public class UpdateExperimentTest extends AbstractExperimentTest .get(experimentPermId); assertEquals(experiment.getProperties().toString(), "{" + propertyType.getPermId() + "=200811050924898-997}"); - assertEquals(experiment.getSampleProperties().toString(), - "{" + propertyType.getPermId() + "=Sample 200811050924898-997}"); + assertEquals(experiment.getSampleProperties().get(propertyType.getPermId()).length, 1); + assertEquals(experiment.getSampleProperties().get(propertyType.getPermId())[0].toString(), "Sample 200811050924898-997"); List<HistoryEntry> history = experiment.getHistory(); assertEquals(history.size(), 3); diff --git a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateSampleTest.java b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateSampleTest.java index 44a32afc172..3bb6351d55c 100644 --- a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateSampleTest.java +++ b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateSampleTest.java @@ -918,7 +918,8 @@ public class UpdateSampleTest extends AbstractSampleTest fetchOptions.withHistory().withAuthor(); Sample sample = v3api.getSamples(sessionToken, Arrays.asList(samplePermId), fetchOptions).get(samplePermId); assertEquals(sample.getProperties().toString(), "{" + propertyType.getPermId() + "=200811050924898-997}"); - assertEquals(sample.getSampleProperties().toString(), "{" + propertyType.getPermId() + "=Sample 200811050924898-997}"); + assertEquals(sample.getSampleProperties().get(propertyType.getPermId()).length, 1); + assertEquals(sample.getSampleProperties().get(propertyType.getPermId())[0].toString(), "Sample 200811050924898-997"); List<HistoryEntry> history = sample.getHistory(); assertEquals(history.size(), 1); @@ -952,7 +953,8 @@ public class UpdateSampleTest extends AbstractSampleTest fetchOptions.withHistory().withAuthor(); Sample sample = v3api.getSamples(sessionToken, Arrays.asList(samplePermId), fetchOptions).get(samplePermId); assertEquals(sample.getProperties().toString(), "{" + propertyType.getPermId() + "=200811050924898-997}"); - assertEquals(sample.getSampleProperties().toString(), "{" + propertyType.getPermId() + "=Sample 200811050924898-997}"); + assertEquals(sample.getSampleProperties().get(propertyType.getPermId()).length, 1); + assertEquals(sample.getSampleProperties().get(propertyType.getPermId())[0].toString(), "Sample 200811050924898-997"); List<HistoryEntry> history = sample.getHistory(); assertEquals(history.size(), 2); -- GitLab