From 1be1214555e9885530ba55618ff7a8cfa61b3119 Mon Sep 17 00:00:00 2001 From: cramakri <cramakri> Date: Tue, 9 Mar 2010 10:25:54 +0000 Subject: [PATCH] LMS-1398 Hook up the SampleMetadatExtractor to the CinaDataSetInfoExtractor and add tests. SVN: 15078 --- .../dss/info/CinaDataSetInfoExtractor.java | 20 ++++++-- .../info/CinaDataSetInfoExtractorTest.java | 46 +++++++++++-------- .../info/sample-data-folder/sample.properties | 6 +-- 3 files changed, 47 insertions(+), 25 deletions(-) diff --git a/rtd_cina/source/java/ch/systemsx/cisd/cina/dss/info/CinaDataSetInfoExtractor.java b/rtd_cina/source/java/ch/systemsx/cisd/cina/dss/info/CinaDataSetInfoExtractor.java index 753b7b8ab2e..d7a7ec8ec11 100644 --- a/rtd_cina/source/java/ch/systemsx/cisd/cina/dss/info/CinaDataSetInfoExtractor.java +++ b/rtd_cina/source/java/ch/systemsx/cisd/cina/dss/info/CinaDataSetInfoExtractor.java @@ -70,14 +70,16 @@ public class CinaDataSetInfoExtractor implements IDataSetInfoExtractor switch (folderType) { case DATA_SET: - processDataSetFolder(metadata.tryGetMetadataFile(), dataSetInformation, openbisService); + processDataSetFolder(metadata.tryGetMetadataFile(), dataSetInformation, + openbisService); break; case EXPERIMENT: processExperimentFolder(metadata.tryGetMetadataFile(), dataSetInformation, openbisService); break; case SAMPLE: - processSampleFolder(metadata.tryGetMetadataFile(), dataSetInformation, openbisService); + processSampleFolder(metadata.tryGetMetadataFile(), dataSetInformation, + openbisService); break; case UNKNOWN: break; @@ -114,7 +116,19 @@ public class CinaDataSetInfoExtractor implements IDataSetInfoExtractor private void processSampleFolder(final File metadataFile, final DataSetInformation dataSetInformation, IEncapsulatedOpenBISService openbisService) { - + try + { + HashMap<String, String> sampleMetadata = convertMetadataFileToMap(metadataFile); + SampleMetadataExtractor extractor = + new SampleMetadataExtractor(dataSetInformation, sampleMetadata, + getEntityCodeSuffix(), openbisService); + extractor.processMetadataAndFillDataSetInformation(); + } catch (IOException ex) + { + UserFailureException userFailure = + new UserFailureException("Could not register sample", ex); + throw userFailure; + } } /** diff --git a/rtd_cina/sourceTest/java/ch/systemsx/cisd/cina/dss/info/CinaDataSetInfoExtractorTest.java b/rtd_cina/sourceTest/java/ch/systemsx/cisd/cina/dss/info/CinaDataSetInfoExtractorTest.java index a223bf275e5..047286c2edc 100644 --- a/rtd_cina/sourceTest/java/ch/systemsx/cisd/cina/dss/info/CinaDataSetInfoExtractorTest.java +++ b/rtd_cina/sourceTest/java/ch/systemsx/cisd/cina/dss/info/CinaDataSetInfoExtractorTest.java @@ -29,8 +29,11 @@ import org.testng.annotations.Test; import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier; /** * @author Chandrasekhar Ramakrishnan @@ -79,25 +82,30 @@ public class CinaDataSetInfoExtractorTest extends AssertJUnit assertTrue("no-one@nowhere.ch".equals(dataSetInformation.tryGetUploadingUserEmail())); } - // @Test - // public void testRegisterSample() - // { - // context.checking(new Expectations() - // { - // { - // one(openbisService).tryToGetExperiment(with(any(ExperimentIdentifier.class))); - // will(returnValue(null)); - // one(openbisService).registerExperiment(with(any(NewExperiment.class))); - // } - // }); - // - // File sampleFolder = - // new File("sourceTest/java/ch/systemsx/cisd/cina/dss/info/sample-data-folder"); - // DataSetInformation dataSetInformation = - // extractor.getDataSetInformation(sampleFolder, openbisService); - // - // assertTrue("no-one@nowhere.ch".equals(dataSetInformation.tryGetUploadingUserEmail())); - // } + @Test + public void testRegisterSample() + { + final Experiment existingExperiment = new Experiment(); + context.checking(new Expectations() + { + { + one(openbisService).tryToGetExperiment(with(any(ExperimentIdentifier.class))); + will(returnValue(existingExperiment)); + one(openbisService).tryGetSampleWithExperiment( + with(any(SampleIdentifier.class))); + will(returnValue(null)); + one(openbisService).registerSample(with(any(NewSample.class)), + with(aNull(String.class))); + } + }); + + File sampleFolder = + new File("sourceTest/java/ch/systemsx/cisd/cina/dss/info/sample-data-folder"); + DataSetInformation dataSetInformation = + extractor.getDataSetInformation(sampleFolder, openbisService); + + assertTrue("no-one@nowhere.ch".equals(dataSetInformation.tryGetUploadingUserEmail())); + } @Test public void testRegisterAmbiguousFolder() diff --git a/rtd_cina/sourceTest/java/ch/systemsx/cisd/cina/dss/info/sample-data-folder/sample.properties b/rtd_cina/sourceTest/java/ch/systemsx/cisd/cina/dss/info/sample-data-folder/sample.properties index 124fde3eff7..80ba74bf10f 100644 --- a/rtd_cina/sourceTest/java/ch/systemsx/cisd/cina/dss/info/sample-data-folder/sample.properties +++ b/rtd_cina/sourceTest/java/ch/systemsx/cisd/cina/dss/info/sample-data-folder/sample.properties @@ -1,3 +1,3 @@ -project.code = CINA1 -experiment.code = EXP -experiment.owner-email = no-one@nowhere.ch \ No newline at end of file +experiment.identifier = /CINA/CINA1/EXP1 +experiment.owner-email = no-one@nowhere.ch +sample.code-prefix = S \ No newline at end of file -- GitLab