diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProvider.java index 2b93f162542365c31ade6f0b2501f8949f8ba0b2..f8a58957e7f53853d8a5e3ac7a0f7fd9fe981ee1 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProvider.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProvider.java @@ -31,6 +31,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.IRawDataServiceInternal; +import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto.MsInjectionSample; /** * @author Franz-Josef Elmer @@ -90,7 +91,7 @@ class RawDataSampleProvider implements IOriginalDataProvider<GenericTableRow> private List<Column> getColumns() { - List<Sample> samples = service.listRawDataSamples(sessionToken); + List<MsInjectionSample> samples = service.listRawDataSamples(sessionToken); Column codeColumn = new Column(GenericTableColumnHeader.untitledLinkableStringHeader(0, CODE)); Column dateColumn = @@ -105,7 +106,7 @@ class RawDataSampleProvider implements IOriginalDataProvider<GenericTableRow> PropertyColumns parentPropertyColumns = new PropertyColumns(); for (int i = 0; i < samples.size(); i++) { - Sample sample = samples.get(i); + Sample sample = samples.get(i).getSample(); codeColumn.addStringWithID(i, sample.getCode(), sample.getId()); dateColumn.addDate(i, sample.getRegistrationDate()); Sample parent = sample.getGeneratedFrom(); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataService.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataService.java index a1be87af8cfed3771e8b25e64b413c485eeb66c4..dbfb125b476e8041683c487b5a38baaeaf272b98 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataService.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataService.java @@ -35,6 +35,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO; import ch.systemsx.cisd.openbis.generic.shared.translator.DataStoreServiceTranslator; import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.IRawDataService; import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.IRawDataServiceInternal; +import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto.MsInjectionSample; /** * Imlementation of {@link IRawDataService}. @@ -67,7 +68,13 @@ public class RawDataService extends AbstractServer<IRawDataService> implements I SessionContextDTO session = login(userID); try { - return service.listRawDataSamples(session.getSessionToken()); + List<MsInjectionSample> list = service.listRawDataSamples(session.getSessionToken()); + ArrayList<Sample> result = new ArrayList<Sample>(); + for (MsInjectionSample sample : list) + { + result.add(sample.getSample()); + } + return result; } finally { diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternal.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternal.java index 9152349e004f6c19b3d46e5b2454719736fa3cc7..006872586744a86d10176bc8cea19a4a9c84df1f 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternal.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternal.java @@ -49,8 +49,10 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; import ch.systemsx.cisd.openbis.generic.shared.dto.SampleTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.Session; import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTypeTranslator; +import ch.systemsx.cisd.openbis.plugin.phosphonetx.server.business.Manager; import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.IRawDataServiceInternal; import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.authorization.validator.RawDataSampleValidator; +import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto.MsInjectionSample; /** * @@ -63,7 +65,7 @@ public class RawDataServiceInternal extends AbstractServer<IRawDataServiceIntern @Private static final String RAW_DATA_SAMPLE_TYPE = "MS_INJECTION"; - private static final IValidator<Sample> RAW_DATA_SAMPLE_VALIDATOR = new RawDataSampleValidator(); + private static final IValidator<MsInjectionSample> RAW_DATA_SAMPLE_VALIDATOR = new RawDataSampleValidator(); private ICommonBusinessObjectFactory businessObjectFactory; @@ -91,7 +93,7 @@ public class RawDataServiceInternal extends AbstractServer<IRawDataServiceIntern return new RawDataServiceInternalLogger(getSessionManager(), context); } - public List<Sample> listRawDataSamples(String sessionToken) + public List<MsInjectionSample> listRawDataSamples(String sessionToken) { return loadAllRawDataSamples(getSession(sessionToken)); } @@ -102,13 +104,13 @@ public class RawDataServiceInternal extends AbstractServer<IRawDataServiceIntern Session session = getSession(sessionToken); PersonPE person = session.tryGetPerson(); - List<Sample> samples = loadAllRawDataSamples(session); + List<MsInjectionSample> samples = loadAllRawDataSamples(session); Set<Long> sampleIDs = new HashSet<Long>(); - for (Sample sample : samples) + for (MsInjectionSample sample : samples) { if (RAW_DATA_SAMPLE_VALIDATOR.isValid(person, sample)) { - sampleIDs.add(sample.getId()); + sampleIDs.add(sample.getSample().getId()); } } @@ -137,7 +139,7 @@ public class RawDataServiceInternal extends AbstractServer<IRawDataServiceIntern parameterBindings); } - private List<Sample> loadAllRawDataSamples(Session session) + private List<MsInjectionSample> loadAllRawDataSamples(Session session) { ISampleLister sampleLister = businessObjectFactory.createSampleLister(session); ListSampleCriteria criteria = new ListSampleCriteria(); @@ -148,7 +150,14 @@ public class RawDataServiceInternal extends AbstractServer<IRawDataServiceIntern criteria.setSpaceCode(SPACE_CODE); ListOrSearchSampleCriteria criteria2 = new ListOrSearchSampleCriteria(criteria); criteria2.setEnrichDependentSamplesWithProperties(true); - return sampleLister.list(criteria2); + List<Sample> samples = sampleLister.list(criteria2); + Manager manager = new Manager(); + for (Sample sample : samples) + { + manager.addSample(sample); + } + manager.gatherDataSets(businessObjectFactory.createDatasetLister(session, "")); + return manager.getSamples(); } private String findDataStoreServer(String dataSetProcessingKey) diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternalLogger.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternalLogger.java index 73f3c988bf22027671d2c8856bd893aa6a9b365b..1c31bddd1fd96ba8f49f857156463ae430252031 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternalLogger.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternalLogger.java @@ -21,9 +21,9 @@ import java.util.List; import ch.systemsx.cisd.authentication.ISessionManager; import ch.systemsx.cisd.common.spring.IInvocationLoggerContext; import ch.systemsx.cisd.openbis.generic.server.AbstractServerLogger; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.dto.Session; import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.IRawDataServiceInternal; +import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto.MsInjectionSample; /** * @@ -39,7 +39,7 @@ class RawDataServiceInternalLogger extends AbstractServerLogger implements IRawD super(sessionManager, context); } - public List<Sample> listRawDataSamples(String sessionToken) + public List<MsInjectionSample> listRawDataSamples(String sessionToken) { logAccess(sessionToken, "list_raw_data_samples"); return null; diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/business/Manager.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/business/Manager.java new file mode 100644 index 0000000000000000000000000000000000000000..944a500d97e5660f9b60cf4b6e771d7f1f755ae1 --- /dev/null +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/business/Manager.java @@ -0,0 +1,147 @@ +/* + * Copyright 2010 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.phosphonetx.server.business; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import ch.systemsx.cisd.common.exceptions.UserFailureException; +import ch.systemsx.cisd.openbis.generic.server.business.bo.datasetlister.IDatasetLister; +import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; +import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto.MsInjectionSample; + +/** + * + * + * @author Franz-Josef Elmer + */ +public class Manager +{ + private final Map<Long, MsInjectionSample> samples = new LinkedHashMap<Long, MsInjectionSample>(); + + public void addSample(Sample plainSample) + { + MsInjectionSample sample = new MsInjectionSample(plainSample); + samples.put(plainSample.getId(), sample); + Experiment experiment = plainSample.getExperiment(); + if (experiment == null) + { + throw new UserFailureException("Sample '" + plainSample.getIdentifier() + "' of type '" + + plainSample.getSampleType() + "' does not belong to an experiment."); + } + } + + public List<MsInjectionSample> getSamples() + { + return new ArrayList<MsInjectionSample>(samples.values()); + } + + public void gatherDataSets(IDatasetLister datasetLister) + { + List<ExternalData> dataSets = getDataSets(datasetLister); + Map<Long, Long> dataSetSampleMap = mapDataSetsOnSamples(dataSets, datasetLister); + for (ExternalData dataSet : dataSets) + { + Long sampleID = dataSetSampleMap.get(dataSet.getId()); + if (sampleID != null) + { + String code = dataSet.getDataSetType().getCode(); + Date registrationDate = dataSet.getRegistrationDate(); + MsInjectionSample sample = samples.get(sampleID); + if (sample != null) + { + sample.addLatestDataSet(code, registrationDate); + } + } + } + } + + private List<ExternalData> getDataSets(IDatasetLister datasetLister) + { + Set<TechId> experimentIds = new LinkedHashSet<TechId>(); + for (MsInjectionSample sample : samples.values()) + { + experimentIds.add(new TechId(sample.getSample().getExperiment().getId())); + } + List<ExternalData> result = new ArrayList<ExternalData>(); + List<ExternalData> dataSets = datasetLister.listByExperimentTechIds(experimentIds); + for (ExternalData dataSet : dataSets) + { + result.add(dataSet); + } + return result; + } + + private Map<Long, Long> mapDataSetsOnSamples(List<ExternalData> dataSets, + IDatasetLister datasetLister) + { + List<ExternalData> descendentDataSets = new ArrayList<ExternalData>(); + Map<Long, Long> dataSetSampleMap = new HashMap<Long, Long>(); + Set<Long> ids = new LinkedHashSet<Long>(); + for (ExternalData dataSet : dataSets) + { + Sample sample = dataSet.getSample(); + if (sample != null) + { + dataSetSampleMap.put(dataSet.getId(), sample.getId()); + } else + { + descendentDataSets.add(dataSet); + ids.add(dataSet.getId()); + } + } + Map<Long, Set<Long>> parentIds = datasetLister.listParentIds(ids); + while (descendentDataSets.isEmpty() == false) + { + for (Iterator<ExternalData> iterator = descendentDataSets.iterator(); iterator + .hasNext();) + { + ExternalData dataSet = iterator.next(); + Set<Long> parent = parentIds.get(dataSet.getId()); + if (parent == null) + { + iterator.remove(); + continue; + } + if (parent.size() != 1) + { + throw new UserFailureException("Data set '" + dataSet.getCode() + "' has " + + parent.size() + " instead of one parent data set."); + + } + Long sampleID = dataSetSampleMap.get(parent.iterator().next()); + if (sampleID != null) + { + dataSetSampleMap.put(dataSet.getId(), sampleID); + iterator.remove(); + } + } + } + return dataSetSampleMap; + } + +} diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/IRawDataServiceInternal.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/IRawDataServiceInternal.java index d782ccf07da5eaebfa5a434b81970711ff464901..7fe13797ea7ad78d8186dd8872055150dac8cd2f 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/IRawDataServiceInternal.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/IRawDataServiceInternal.java @@ -24,8 +24,8 @@ import ch.systemsx.cisd.openbis.generic.shared.IServer; import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.ReturnValueFilter; import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.RoleSet; import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.RolesAllowed; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.authorization.validator.RawDataSampleValidator; +import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto.MsInjectionSample; /** * @@ -41,7 +41,7 @@ public interface IRawDataServiceInternal extends IServer @Transactional(readOnly = true) @RolesAllowed(RoleSet.USER) @ReturnValueFilter(validatorClass = RawDataSampleValidator.class) - public List<Sample> listRawDataSamples(String sessionToken); + public List<MsInjectionSample> listRawDataSamples(String sessionToken); @Transactional(readOnly = true) @RolesAllowed(RoleSet.USER) diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/authorization/validator/RawDataSampleValidator.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/authorization/validator/RawDataSampleValidator.java index a87c3956357a95153d90988d98fd3f69347320c2..5e51d4044224ca96a0f5c76bdf5077066a45b3a0 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/authorization/validator/RawDataSampleValidator.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/authorization/validator/RawDataSampleValidator.java @@ -5,19 +5,20 @@ import ch.systemsx.cisd.openbis.generic.shared.authorization.validator.IValidato import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; +import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto.MsInjectionSample; /** * * * @author Franz-Josef Elmer */ -public final class RawDataSampleValidator implements IValidator<Sample> +public final class RawDataSampleValidator implements IValidator<MsInjectionSample> { private IValidator<Space> validator = new SpaceValidator(); - public boolean isValid(PersonPE person, Sample sample) + public boolean isValid(PersonPE person, MsInjectionSample sample) { - Sample parent = sample.getGeneratedFrom(); + Sample parent = sample.getSample().getGeneratedFrom(); if (parent != null) { Space space = parent.getSpace(); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/dto/MsInjectionSample.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/dto/MsInjectionSample.java new file mode 100644 index 0000000000000000000000000000000000000000..99a8b8fbde3648273e009eb62873c6086c8a3d78 --- /dev/null +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/dto/MsInjectionSample.java @@ -0,0 +1,67 @@ +/* + * Copyright 2010 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto; + +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.Map; + +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; + +/** + * + * + * @author Franz-Josef Elmer + */ +public class MsInjectionSample +{ + private final Sample sample; + private final Map<String, Date> latestRegistrationDates = new LinkedHashMap<String, Date>(); + + public MsInjectionSample(Sample sample) + { + this.sample = sample; + } + + public Sample getSample() + { + return sample; + } + + public Map<String, Date> getLatestRegistrationDates() + { + return latestRegistrationDates; + } + + public void addLatestDataSet(String dataSetTypeCode, Date registrationDate) + { + Date date = latestRegistrationDates.get(dataSetTypeCode); + if (date == null || date.getTime() < registrationDate.getTime()) + { + latestRegistrationDates.put(dataSetTypeCode, registrationDate); + } + } + + @Override + public String toString() + { + return sample.getIdentifier()+":"+latestRegistrationDates; + } + + + +} diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternalTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternalTest.java index b12a5db927e14be596d3a9c4693d866efa86431b..11504d334f12291d703aa1e45bba6caad846bf8a 100644 --- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternalTest.java +++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternalTest.java @@ -23,9 +23,11 @@ import static ch.systemsx.cisd.openbis.plugin.phosphonetx.server.RawDataServiceI import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; +import java.util.Set; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; @@ -39,6 +41,7 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleL import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListOrSearchSampleCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; @@ -48,6 +51,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; import ch.systemsx.cisd.openbis.generic.shared.dto.SampleTypePE; import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.IRawDataServiceInternal; +import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto.MsInjectionSample; /** * @@ -78,9 +82,9 @@ public class RawDataServiceInternalTest extends AbstractServerTestCase prepareGetSession(); prepareListRawDataSamples(42L); - List<Sample> samples = service.listRawDataSamples(SESSION_TOKEN); + List<MsInjectionSample> samples = service.listRawDataSamples(SESSION_TOKEN); - assertEquals(42L, samples.get(0).getId().longValue()); + assertEquals(42L, samples.get(0).getSample().getId().longValue()); assertEquals(1, samples.size()); context.assertIsSatisfied(); } @@ -179,11 +183,29 @@ public class RawDataServiceInternalTest extends AbstractServerTestCase { Sample sample = new Sample(); sample.setId(id); + sample.setIdentifier("S" + id); + Experiment experiment = new Experiment(); + experiment.setId(id * 10); + sample.setExperiment(experiment); Sample parent = new Sample(); + parent.setId(id * 100); sample.setGeneratedFrom(parent); samples.add(sample); } will(returnValue(samples)); + + one(boFactory).createDatasetLister(SESSION, ""); + will(returnValue(datasetLister)); + + LinkedHashSet<TechId> experimentIds = new LinkedHashSet<TechId>(); + for (Long id : sampleIDs) + { + experimentIds.add(new TechId(id * 10)); + } + one(datasetLister).listByExperimentTechIds(experimentIds); + + one(datasetLister).listParentIds(Collections.<Long>emptySet()); + will(returnValue(Collections.<Long, Set<Long>>emptyMap())); } }); } diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/authorization/validator/RawDataSampleValidatorTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/authorization/validator/RawDataSampleValidatorTest.java index 847e2a1f130ce2affd10098bced9656419146881..09b4f96dac046c0588d01606ea35885db9c9511b 100644 --- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/authorization/validator/RawDataSampleValidatorTest.java +++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/authorization/validator/RawDataSampleValidatorTest.java @@ -33,23 +33,24 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.DatabaseInstanceId import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier; +import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto.MsInjectionSample; /** * @author Franz-Josef Elmer */ public class RawDataSampleValidatorTest extends AssertJUnit { - private static final Sample NO_PARENT = create("no-parent", null); + private static final MsInjectionSample NO_PARENT = create("no-parent", null); - private static final Sample WITH_INSTANCE_PARENT = create("with-instance-parent", "t:/parent"); + private static final MsInjectionSample WITH_INSTANCE_PARENT = create("with-instance-parent", "t:/parent"); - private static final Sample WITH_PARENT_IN_G1 = create("with-parent-in-g1", "t:/g1/parent"); + private static final MsInjectionSample WITH_PARENT_IN_G1 = create("with-parent-in-g1", "t:/g1/parent"); - private static final Sample WITH_PARENT_IN_G2 = create("with-parent-in-g2", "t:/g2/parent"); + private static final MsInjectionSample WITH_PARENT_IN_G2 = create("with-parent-in-g2", "t:/g2/parent"); private RawDataSampleValidator validator = new RawDataSampleValidator(); - private static Sample create(String sampleCode, String parentSampleIdentifierOrNull) + private static MsInjectionSample create(String sampleCode, String parentSampleIdentifierOrNull) { Sample sample = new Sample(); sample.setCode(sampleCode); @@ -78,7 +79,7 @@ public class RawDataSampleValidatorTest extends AssertJUnit } sample.setGeneratedFrom(parent); } - return sample; + return new MsInjectionSample(sample); } private static DatabaseInstance createDatabaseInstance(String code)