diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java index 06d5eb2e47109671caca1323c56630307a2c1144..a089aea7d415f09e3cc30d771f9bb1c1e6008b77 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java @@ -90,6 +90,7 @@ public final class MaterialBO extends AbstractMaterialBusinessObject implements { material = getMaterialById(materialId); dataChanged = false; + HibernateUtils.initialize(material.getMaterialType().getMaterialTypePropertyTypes()); } @Override diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java index 3aa5c1b0791c931c038dde43799d44d92ff7a358..9c35f2b1be15d0eb76384f605c7d7bbc5921dc27 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java @@ -33,9 +33,11 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Attachment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AuthorizationGroup; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ContainerDataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityTypePropertyType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAuthorizationGroup; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; @@ -158,6 +160,23 @@ public class CommonServerTest extends SystemTestCase assertEquals("/CISD/CP-TEST-1", dataSet.getSampleIdentifier()); } + @Test + public void testGetMaterialInfo() + { + Material materialInfo = commonServer.getMaterialInfo(systemSessionToken, new TechId(1)); + + assertEquals("AD3", materialInfo.getCode()); + assertEquals(EntityKind.MATERIAL, materialInfo.getEntityKind()); + EntityType entityType = materialInfo.getEntityType(); + assertEquals("VIRUS", entityType.getCode()); + List<? extends EntityTypePropertyType<?>> assignedPropertyTypes = entityType.getAssignedPropertyTypes(); + assertEquals("VIRUS", assignedPropertyTypes.get(0).getEntityType().getCode()); + assertEquals("DESCRIPTION", assignedPropertyTypes.get(0).getPropertyType().getCode()); + assertEquals("VARCHAR", assignedPropertyTypes.get(0).getPropertyType().getDataType().getCode().toString()); + assertEquals(1, assignedPropertyTypes.size()); + assertEquals("[DESCRIPTION: Adenovirus 3]", materialInfo.getProperties().toString()); + } + private void assertAssignedPropertyTypes(String expected, EntityType entityType) { List<? extends EntityTypePropertyType<?>> propTypes = entityType.getAssignedPropertyTypes();