From a0c5d2efe686bad28003c8eb7610e91d2ee9ce3b Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Wed, 5 Oct 2011 07:35:43 +0000 Subject: [PATCH] allow not only spaces but also commas as separators for parent data set codes SVN: 23191 --- ...DataSetInfoExtractorForProteinResults.java | 6 +- ...SetInfoExtractorForProteinResultsTest.java | 58 +++++++++++++++++++ 2 files changed, 61 insertions(+), 3 deletions(-) diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForProteinResults.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForProteinResults.java index a1219193882..95564639f79 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForProteinResults.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForProteinResults.java @@ -52,8 +52,8 @@ public class DataSetInfoExtractorForProteinResults extends AbstractDataSetInfoEx @Private static final String SEPARATOR_KEY = "separator"; @Private static final String DEFAULT_SEPARATOR = "&"; @Private static final String DEFAULT_EXPERIMENT_PROPERTIES_FILE_NAME = "search.properties"; - @Private static final String PARENT_DATA_SET_CODES = "parent-data-set-codes"; - @Private static final String EXPERIMENT_IDENTIFIER_KEY = "base-experiment"; + static final String PARENT_DATA_SET_CODES = "parent-data-set-codes"; + static final String EXPERIMENT_IDENTIFIER_KEY = "base-experiment"; private final String separator; private final String experimentPropertiesFileName; @@ -102,7 +102,7 @@ public class DataSetInfoExtractorForProteinResults extends AbstractDataSetInfoEx String parentDataSetCodesOrNull = getProperty(properties, PARENT_DATA_SET_CODES); if (parentDataSetCodesOrNull != null) { - info.setParentDataSetCodes(Arrays.asList(StringUtils.split(parentDataSetCodesOrNull))); + info.setParentDataSetCodes(Arrays.asList(StringUtils.split(parentDataSetCodesOrNull, ", "))); } else { String baseExperimentIdentifier = getProperty(properties, EXPERIMENT_IDENTIFIER_KEY); diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForProteinResultsTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForProteinResultsTest.java index 3af3687a2d3..0ffa9aae8dc 100644 --- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForProteinResultsTest.java +++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForProteinResultsTest.java @@ -61,6 +61,9 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier; @Friend(toClasses=DataSetInfoExtractorForProteinResults.class) public class DataSetInfoExtractorForProteinResultsTest extends AbstractFileSystemTestCase { + private static final String PARENT_DATA_SET_CODES_KEY = + DataSetInfoExtractorForProteinResults.PARENT_DATA_SET_CODES.toUpperCase(); + private Mockery context; private IEncapsulatedOpenBISService service; private File dataSet; @@ -211,6 +214,61 @@ public class DataSetInfoExtractorForProteinResultsTest extends AbstractFileSyste context.assertIsSatisfied(); } + @Test + public void testWithParentDataSetsSeparatedBySpaces() + { + String propertiesFile = "my.properties"; + FileUtilities.writeToFile(new File(dataSet, propertiesFile), "answer=42\nblabla=blub\n" + + EXPERIMENT_IDENTIFIER_KEY + "= /TEST/PROJECT/EXP1\n" + PARENT_DATA_SET_CODES_KEY + + " = ds1 ds2"); + Properties properties = new Properties(); + String experimentType = "MY_EXPERIMENT"; + properties.setProperty(EXPERIMENT_TYPE_CODE_KEY, experimentType); + properties.setProperty(EXPERIMENT_PROPERTIES_FILE_NAME_KEY, propertiesFile); + prepare(experimentType); + context.checking(new Expectations() + { + { + one(service).registerExperiment(with(any(NewExperiment.class))); + } + }); + + IDataSetInfoExtractor extractor = createExtractor(properties); + + DataSetInformation info = extractor.getDataSetInformation(dataSet, service); + + assertEquals("/SPACE1/PROJECT1/E4711", info.getExperimentIdentifier().toString()); + assertEquals("[ds1, ds2]", info.getParentDataSetCodes().toString()); + context.assertIsSatisfied(); + } + + @Test + public void testWithParentDataSetsSeparatedByComma() + { + String propertiesFile = "my.properties"; + FileUtilities.writeToFile(new File(dataSet, propertiesFile), "answer=42\nblabla=blub\n" + + PARENT_DATA_SET_CODES_KEY + " = ds1,ds2"); + Properties properties = new Properties(); + String experimentType = "MY_EXPERIMENT"; + properties.setProperty(EXPERIMENT_TYPE_CODE_KEY, experimentType); + properties.setProperty(EXPERIMENT_PROPERTIES_FILE_NAME_KEY, propertiesFile); + prepare(experimentType); + context.checking(new Expectations() + { + { + one(service).registerExperiment(with(any(NewExperiment.class))); + } + }); + + IDataSetInfoExtractor extractor = createExtractor(properties); + + DataSetInformation info = extractor.getDataSetInformation(dataSet, service); + + assertEquals("/SPACE1/PROJECT1/E4711", info.getExperimentIdentifier().toString()); + assertEquals("[ds1, ds2]", info.getParentDataSetCodes().toString()); + context.assertIsSatisfied(); + } + private void prepare(final String experimentType) { context.checking(new Expectations() -- GitLab