From 75d977ec5c0b8f1e9de70586453494214321c1b8 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Mon, 14 Feb 2011 22:09:16 +0000 Subject: [PATCH] [LMS-2036] refactoring: moved IEntityInformationProvider to api, renamed ScriptUtilityFactory->ManagedPropertyFunctions, stripped 'get' from some jython api methods; unit tests SVN: 19939 --- .../EntityInformationProvider.java | 13 ++- .../ManagedPropertyEvaluator.java | 2 +- ...ory.java => ManagedPropertyFunctions.java} | 19 +++- .../SimpleTableModelBuilderAdaptor.java | 7 +- .../api/EntityLinkElementKind.java | 7 +- .../shared/managed_property/api/IElement.java | 6 +- .../managed_property/api/IElementFactory.java | 2 + .../{ => api}/IEntityInformationProvider.java | 16 +++- .../api/IEntityLinkElement.java | 3 +- .../api/IRowBuilderAdaptor.java | 2 +- .../api/ISimpleTableModelBuilderAdaptor.java | 2 +- .../api/IStructuredPropertyConverter.java | 6 +- .../server/business/bo/AbstractBOTest.java | 4 +- .../EntityInformationProviderTest.java | 91 +++++++++++++++++++ ...StructuredPropertyConverterPythonTest.java | 4 +- .../structured/structured-property-test.py | 4 +- .../util/SimpleTableModelBuilderTest.java | 22 ++++- 17 files changed, 175 insertions(+), 35 deletions(-) rename openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/{ScriptUtilityFactory.java => ManagedPropertyFunctions.java} (82%) rename openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/{ => api}/IEntityInformationProvider.java (68%) create mode 100644 openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProviderTest.java diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProvider.java index e16f819943f..b0ff3aa9165 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProvider.java @@ -26,7 +26,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialPE; import ch.systemsx.cisd.openbis.generic.shared.managed_property.EntityLinkElementTranslator; -import ch.systemsx.cisd.openbis.generic.shared.managed_property.IEntityInformationProvider; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityInformationProvider; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityLinkElement; /** @@ -35,10 +35,17 @@ import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityLinkE @Component(value = ResourceNames.ENTITY_INFORMATION_PROVIDER) public class EntityInformationProvider implements IEntityInformationProvider { + // @Autowired + private final IDAOFactory daoFactory; + @Autowired - private IDAOFactory daoFactory; + public EntityInformationProvider(IDAOFactory daoFactory) + { + assert daoFactory != null; + this.daoFactory = daoFactory; + } - public String getIdentifier(EntityKind entityKind, String permId) + private String getIdentifier(EntityKind entityKind, String permId) { IIdentifierHolder identifierHolderOrNull = null; switch (entityKind) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyEvaluator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyEvaluator.java index 02bbd219ccf..2c8bc15bd3d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyEvaluator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyEvaluator.java @@ -106,7 +106,7 @@ public class ManagedPropertyEvaluator public ManagedPropertyEvaluator(String scriptExpression) { - evaluator = new Evaluator("", ScriptUtilityFactory.class, scriptExpression); + evaluator = new Evaluator("", ManagedPropertyFunctions.class, scriptExpression); updateFromBatchFunctionDefined = evaluator.hasFunction(UPDATE_FROM_BATCH_INPUT_FUNCTION); List<String> names = new ArrayList<String>(); if (evaluator.hasFunction(BATCH_COLUMN_NAMES_FUNCTION)) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ScriptUtilityFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyFunctions.java similarity index 82% rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ScriptUtilityFactory.java rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyFunctions.java index a58bc5c8708..7db77909214 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ScriptUtilityFactory.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyFunctions.java @@ -8,6 +8,7 @@ import ch.systemsx.cisd.openbis.generic.shared.ResourceNames; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.ValidationException; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IElement; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IElementFactory; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityInformationProvider; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.ISimpleTableModelBuilderAdaptor; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IStructuredPropertyConverter; import ch.systemsx.cisd.openbis.generic.shared.managed_property.structured.ElementFactory; @@ -19,7 +20,7 @@ import ch.systemsx.cisd.openbis.generic.shared.managed_property.structured.XmlSt * All public methods of this class are part of the Managed Properties API. */ @Component(value = ResourceNames.MANAGED_PROPERTY_SCRIPT_UTILITY_FACTORY) -public class ScriptUtilityFactory +public class ManagedPropertyFunctions { private static final IElementFactory ELEMENT_FACTORY_INSTANCE = new ElementFactory(); @@ -38,10 +39,10 @@ public class ScriptUtilityFactory @Resource(name = ResourceNames.ENTITY_INFORMATION_PROVIDER) public void setEntityInformationProvider(IEntityInformationProvider entityInformationProvider) { - ScriptUtilityFactory.entityInformationProvider = entityInformationProvider; + ManagedPropertyFunctions.entityInformationProvider = entityInformationProvider; } - private ScriptUtilityFactory() + private ManagedPropertyFunctions() { } @@ -67,7 +68,7 @@ public class ScriptUtilityFactory /** * @return a factory object that can be used to create {@link IElement}-s. */ - public static IElementFactory getElementFactory() + public static IElementFactory elementFactory() { return ELEMENT_FACTORY_INSTANCE; } @@ -75,9 +76,17 @@ public class ScriptUtilityFactory /** * @return a converter that can translate {@link IElement} to/from Strings. */ - public static IStructuredPropertyConverter getPropertyConverter() + public static IStructuredPropertyConverter propertyConverter() { return STRUCTURED_PROPERTY_CONVERTER_INSTANCE; } + /** + * @return a provider of information about entities. + */ + public static IEntityInformationProvider entityInformationProvider() + { + return entityInformationProvider; + } + } \ No newline at end of file diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/SimpleTableModelBuilderAdaptor.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/SimpleTableModelBuilderAdaptor.java index d9510a6c800..608bece4b35 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/SimpleTableModelBuilderAdaptor.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/SimpleTableModelBuilderAdaptor.java @@ -21,6 +21,7 @@ import java.util.Date; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityTableCell; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityInformationProvider; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityLinkElement; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IRowBuilderAdaptor; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.ISimpleTableModelBuilderAdaptor; @@ -118,7 +119,7 @@ public class SimpleTableModelBuilderAdaptor implements ISimpleTableModelBuilderA final EntityKind entityKind = EntityLinkElementTranslator.translate(value.getEntityLinkKind()); final String permId = value.getPermId(); - final String identifierOrNull = tryExtractIdentifier(entityKind, permId); + final String identifierOrNull = tryExtractIdentifier(value); return new EntityTableCell(entityKind, permId, identifierOrNull); } @@ -135,8 +136,8 @@ public class SimpleTableModelBuilderAdaptor implements ISimpleTableModelBuilderA builder.addFullRow(values); } - private String tryExtractIdentifier(EntityKind entityKind, String permId) + private String tryExtractIdentifier(IEntityLinkElement entityLink) { - return entityInformationProvider.getIdentifier(entityKind, permId); + return entityInformationProvider.getIdentifier(entityLink); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/EntityLinkElementKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/EntityLinkElementKind.java index 6007831c8d5..f40f4816410 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/EntityLinkElementKind.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/EntityLinkElementKind.java @@ -19,15 +19,18 @@ package ch.systemsx.cisd.openbis.generic.shared.managed_property.api; /** * The type of an entity link. * <p> + * <b>All methods of this enum are part of the Managed Properties API.</b> * * @author Kaloyan Enimanev */ public enum EntityLinkElementKind { - EXPERIMENT("Experiment"), SAMPLE("Sample"), DATA_SET("Dataset", "Data Set"), MATERIAL("Material"); + EXPERIMENT("Experiment"), SAMPLE("Sample"), DATA_SET("Dataset", "Data Set"), MATERIAL( + "Material"); private final String elementName; + private final String label; private EntityLinkElementKind(String elementName) @@ -40,7 +43,7 @@ public enum EntityLinkElementKind this.elementName = elementName; this.label = label; } - + /** * the {@link IElement} name corresponding to the link. */ diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElement.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElement.java index d2aff9f6329..f5c35b29838 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElement.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElement.java @@ -26,6 +26,8 @@ import java.util.Map; * <p> * {@link IElement}-s are meant to be used as a convenient, hierarchical property-value persistence * technique for managed properties. + * <p> + * <b>All methods of this interface are part of the Managed Properties API.</b> * * @author Piotr Buczek * @author Kaloyan Enimanev @@ -60,9 +62,9 @@ public interface IElement * @return all children {@link IElement}-s. */ List<IElement> getChildren(); - + Map<String, String> getAttributes(); - + IElement setAttributes(Map<String, String> attributes); /** diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElementFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElementFactory.java index c83730ed94e..d78be893ad8 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElementFactory.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElementFactory.java @@ -18,6 +18,8 @@ package ch.systemsx.cisd.openbis.generic.shared.managed_property.api; /** * Contains helper method to construct {@link IElement} instances. + * <p> + * <b>All methods of this enum are part of the Managed Properties API.</b> * * @author Kaloyan Enimanev */ diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/IEntityInformationProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityInformationProvider.java similarity index 68% rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/IEntityInformationProvider.java rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityInformationProvider.java index 2333d91646c..158fddfa33f 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/IEntityInformationProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityInformationProvider.java @@ -14,15 +14,21 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.generic.shared.managed_property; - -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; +package ch.systemsx.cisd.openbis.generic.shared.managed_property.api; /** + * Provides required information about entities. + * <p> + * <b>All methods of this enum are part of the Managed Properties API.</b> + * * @author Piotr Buczek */ public interface IEntityInformationProvider { - /** @return identifier of entity with given kind and permid, <code>null</code> if such entity doesn't exist */ - String getIdentifier(EntityKind entityKind, String permId); + /** + * @return identifier of entity specified by given link, <code>null</code> if such an entity + * doesn't exist + */ + String getIdentifier(IEntityLinkElement entityLink); + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityLinkElement.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityLinkElement.java index 450a7fad0f0..391ceef7d68 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityLinkElement.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityLinkElement.java @@ -16,9 +16,10 @@ package ch.systemsx.cisd.openbis.generic.shared.managed_property.api; - /** * Denotes a link to an entity in the openBIS database. + * <p> + * <b>All methods of this enum are part of the Managed Properties API.</b> * * @author Kaloyan Enimanev */ diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IRowBuilderAdaptor.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IRowBuilderAdaptor.java index a83f814cb1d..b58eb0b68d6 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IRowBuilderAdaptor.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IRowBuilderAdaptor.java @@ -21,7 +21,7 @@ import java.util.Date; /** * Builder of a row of a simple table. * <p> - * All methods of this interface are part of the Managed Properties API. + * <b>All methods of this enum are part of the Managed Properties API.</b> * * @see ISimpleTableModelBuilderAdaptor * @author Piotr Buczek diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/ISimpleTableModelBuilderAdaptor.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/ISimpleTableModelBuilderAdaptor.java index e05b9777cf9..0ab800943b7 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/ISimpleTableModelBuilderAdaptor.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/ISimpleTableModelBuilderAdaptor.java @@ -22,7 +22,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.ITableModel; /** * Builder of simple table models. All column titles should be unique. * <p> - * All methods of this interface are part of the Managed Properties API. + * <b>All methods of this enum are part of the Managed Properties API.</b> * * @author Piotr Buczek */ diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IStructuredPropertyConverter.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IStructuredPropertyConverter.java index bd23080a816..a7c63ee69c3 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IStructuredPropertyConverter.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IStructuredPropertyConverter.java @@ -23,6 +23,8 @@ import ch.systemsx.cisd.openbis.generic.shared.managed_property.structured.Eleme /** * Abstracts the conversion of {@link Element} objects to/from database strings. + * <p> + * <b>All methods of this enum are part of the Managed Properties API.</b> * * @author Kaloyan Enimanev */ @@ -34,10 +36,10 @@ public interface IStructuredPropertyConverter * @return an empty list if the value is undefined or special. */ List<IElement> convertToElements(IManagedProperty property); - + /** * @return a {@link String} representation of the specified elements that can be persisted in - * the database. + * the database. */ String convertToString(List<IElement> elements); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBOTest.java index 6609f459d47..97fbcd3a043 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBOTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBOTest.java @@ -36,7 +36,6 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IExperimentDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IExternalDataDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IFileFormatTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IGridCustomFilterDAO; -import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISpaceDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.ILocatorTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IMaterialDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IPersonDAO; @@ -46,6 +45,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IRelationshipTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IScriptDAO; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISpaceDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IVocabularyDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IVocabularyTermDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.IPermIdDAO; @@ -186,6 +186,8 @@ public abstract class AbstractBOTest extends AssertJUnit will(returnValue(scriptDAO)); allowing(daoFactory).getMaterialDAO(); will(returnValue(materialDAO)); + allowing(daoFactory).getExperimentDAO(); + will(returnValue(experimentDAO)); } }); } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProviderTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProviderTest.java new file mode 100644 index 00000000000..ce2622f2823 --- /dev/null +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProviderTest.java @@ -0,0 +1,91 @@ +/* + * Copyright 2009 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.generic.server.business.bo.managed_property; + +import org.jmock.Expectations; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import ch.systemsx.cisd.common.logging.LogInitializer; +import ch.systemsx.cisd.openbis.generic.server.business.bo.AbstractBOTest; +import ch.systemsx.cisd.openbis.generic.shared.CommonTestUtils; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialIdentifier; +import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; +import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityLinkElement; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.structured.ElementFactory; + +/** + * @author Piotr Buczek + */ +public class EntityInformationProviderTest extends AbstractBOTest +{ + + private EntityInformationProvider provider; + + private ElementFactory elementFactory; + + @BeforeMethod + public void setUp() + { + LogInitializer.init(); + provider = new EntityInformationProvider(daoFactory); + elementFactory = new ElementFactory(); + } + + @Test + public void testGetIdentifier() + { + final String mCode = "mCode"; + final String mTypeCode = "mTypeCode"; + final String sPermId = "sPermId"; + final String ePermId = "ePermId"; + final String dPermId = "dPermId"; + IEntityLinkElement sampleLink = elementFactory.createSampleLink(sPermId); + IEntityLinkElement experimentLink = elementFactory.createExperimentLink(ePermId); + IEntityLinkElement materialLink = elementFactory.createMaterialLink(mCode, mTypeCode); + IEntityLinkElement datasetLink = elementFactory.createDataSetLink(dPermId); + + final SamplePE sample = CommonTestUtils.createSample(); + final ExperimentPE experiment = + CommonTestUtils.createExperiment(new ExperimentIdentifier("proj", "exp")); + context.checking(new Expectations() + { + { + one(sampleDAO).tryToFindByPermID(sPermId); + will(returnValue(sample)); + + one(experimentDAO).tryGetByPermID(ePermId); + will(returnValue(experiment)); + one(materialDAO).tryFindMaterial(new MaterialIdentifier(mCode, mTypeCode)); + // will(returnValue(any(MaterialPE.class))); + + one(externalDataDAO).tryToFindDataSetByCode(dPermId); + // will(returnValue(any(DataPE.class))); + } + }); + + String sIdentifier = provider.getIdentifier(sampleLink); + assertEquals(sample.getIdentifier(), sIdentifier); + String eIdentifier = provider.getIdentifier(experimentLink); + assertEquals(experiment.getIdentifier(), eIdentifier); + String mIdentifier = provider.getIdentifier(materialLink); + String dIdentifier = provider.getIdentifier(datasetLink); + } + +} diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/StructuredPropertyConverterPythonTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/StructuredPropertyConverterPythonTest.java index 5f79271b9f1..33806bf1476 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/StructuredPropertyConverterPythonTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/StructuredPropertyConverterPythonTest.java @@ -29,7 +29,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ManagedEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.IManagedProperty; import ch.systemsx.cisd.openbis.generic.shared.managed_property.ManagedPropertyEvaluator; -import ch.systemsx.cisd.openbis.generic.shared.managed_property.ScriptUtilityFactory; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.ManagedPropertyFunctions; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IElement; /** @@ -55,7 +55,7 @@ public class StructuredPropertyConverterPythonTest extends AssertJUnit // the script will create several elements and serialize them in the property value List<IElement> elements = - ScriptUtilityFactory.getPropertyConverter().convertToElements(managedProperty); + ManagedPropertyFunctions.propertyConverter().convertToElements(managedProperty); assertEquals(3, elements.size()); } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/structured-property-test.py b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/structured-property-test.py index 7fc95c5fd40..958557d1202 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/structured-property-test.py +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/structured-property-test.py @@ -1,5 +1,5 @@ -factory = getElementFactory() -converter = getPropertyConverter() +factory = elementFactory() +converter = propertyConverter() # # we use a function named "configureUI" to test something completely unrelated, diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/util/SimpleTableModelBuilderTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/util/SimpleTableModelBuilderTest.java index b66a8311890..63a539b6274 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/util/SimpleTableModelBuilderTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/util/SimpleTableModelBuilderTest.java @@ -196,9 +196,9 @@ public class SimpleTableModelBuilderTest extends AssertJUnit rowBuilder.setCell("datasetCol", createDataSetCell("d2")); rowBuilder = builder.addRow(); rowBuilder.setCell("materialCol", SimpleTableModelBuilder.createNullCell()); - rowBuilder.setCell("sampleCol", createSampleCell("s3")); + rowBuilder.setCell("sampleCol", createSampleCell("s3", null)); rowBuilder.setCell("experimentCol", SimpleTableModelBuilder.createNullCell()); - rowBuilder.setCell("datasetCol", createDataSetCell("d3")); + rowBuilder.setCell("datasetCol", createDataSetCell("d3", "d3 id")); TableModel tableModel = builder.getTableModel(); @@ -225,9 +225,13 @@ public class SimpleTableModelBuilderTest extends AssertJUnit assertEquals("d2", rows.get(1).getValues().get(3).toString()); assertEquals(4, rows.get(2).getValues().size()); assertEquals("", rows.get(2).getValues().get(0).toString()); - assertEquals("s3", rows.get(2).getValues().get(1).toString()); + assertEquals("s3 (missing)", rows.get(2).getValues().get(1).toString()); + assertEquals(true, ((EntityTableCell) rows.get(2).getValues().get(1)).isMissing()); + assertEquals("s3", ((EntityTableCell) rows.get(2).getValues().get(1)).getPermId()); assertEquals("", rows.get(2).getValues().get(2).toString()); - assertEquals("d3", rows.get(2).getValues().get(3).toString()); + assertEquals("d3 id", rows.get(2).getValues().get(3).toString()); + assertEquals(false, ((EntityTableCell) rows.get(2).getValues().get(3)).isMissing()); + assertEquals("d3", ((EntityTableCell) rows.get(2).getValues().get(3)).getPermId()); } private static EntityTableCell createMaterialCell(String permId) @@ -240,6 +244,11 @@ public class SimpleTableModelBuilderTest extends AssertJUnit return new EntityTableCell(EntityKind.SAMPLE, permId); } + private static EntityTableCell createSampleCell(String permId, String identifierOrNull) + { + return new EntityTableCell(EntityKind.SAMPLE, permId, identifierOrNull); + } + private static EntityTableCell createExperimentCell(String permId) { return new EntityTableCell(EntityKind.EXPERIMENT, permId); @@ -250,6 +259,11 @@ public class SimpleTableModelBuilderTest extends AssertJUnit return new EntityTableCell(EntityKind.DATA_SET, permId); } + private static EntityTableCell createDataSetCell(String permId, String identifierOrNull) + { + return new EntityTableCell(EntityKind.DATA_SET, permId, identifierOrNull); + } + private void assertHeader(String expectedTitle, String expectedID, int expectedDefaultWidth, int expectedIndex, DataTypeCode expectedDataType, TableModelColumnHeader header) { -- GitLab