From 87e3f067a8ba0487f4f1dae8e04cdff32c15fce3 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Wed, 15 May 2013 11:52:21 +0000 Subject: [PATCH] SP-625 BIS-398: Basic tests for new API calls. Ongoing work. SVN: 29145 --- .../openbis/systemtest/CommonServerTest.java | 219 +++++++++++++++++- 1 file changed, 218 insertions(+), 1 deletion(-) 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 d4a672f98c8..4001a19b1f8 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java @@ -25,14 +25,25 @@ import java.util.List; import org.testng.annotations.Test; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Attachment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ContainerDataSet; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; +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.AbstractExternalData; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewETNewPTAssigments; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewETPTAssignment; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewPTNewAssigment; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; /** * @author Franz-Josef Elmer @@ -135,4 +146,210 @@ public class CommonServerTest extends SystemTestCase Collections.sort(propertyCodes); assertEquals(expected, propertyCodes.toString()); } + + @Test + public void testRegisterAndAssignPropertyType() + { + // Entity Type + final String entityTypeCode = "TEST_ENTITY_TYPE_CODE_" + System.currentTimeMillis(); + final EntityKind entityKind = EntityKind.EXPERIMENT; + + ExperimentType entityType = new ExperimentType(); + entityType.setCode(entityTypeCode); + + // Property Type + final String propertyTypeCode = "TEST_PROPERTY_TYPE_CODE_" + System.currentTimeMillis(); + final String propertyTypeLabel = "TEST_PROPERTY_TYPE_LABEL_" + System.currentTimeMillis(); + final String propertyTypeDescription = "TEST_PROPERTY_TYPE_DESCRIPTION_" + System.currentTimeMillis(); + final DataType dataType = new DataType(); + dataType.setCode(DataTypeCode.INTEGER); + + PropertyType newPropertyType = new PropertyType(); + newPropertyType.setCode(propertyTypeCode); + newPropertyType.setLabel(propertyTypeLabel); + newPropertyType.setDescription(propertyTypeDescription); + newPropertyType.setDataType(dataType); + + // Assigment + NewETPTAssignment newETPTAssigment = new NewETPTAssignment(); + newETPTAssigment.setEntityKind(entityKind); + newETPTAssigment.setPropertyTypeCode(propertyTypeCode); + newETPTAssigment.setEntityTypeCode(entityTypeCode); + newETPTAssigment.setOrdinal(0L); + + // Call + commonServer.registerExperimentType(systemSessionToken, entityType); + commonServer.registerAndAssignPropertyType(systemSessionToken, newPropertyType, newETPTAssigment); + + // Validation + List<EntityTypePropertyType<?>> listAssigments = commonServer.listEntityTypePropertyTypes(systemSessionToken, entityType); + + assertEquals(newPropertyType, listAssigments.get(0).getPropertyType()); + } + + @Test + public void testRegisterEntitytypeAndAssignPropertyTypes() + { + for (EntityKind entityKind : EntityKind.values()) + { + // Entity Type + final String entityTypeCode = "TEST_ENTITY_TYPE_CODE_" + entityKind.name(); + EntityType entityType = null; + + switch (entityKind) + { + case EXPERIMENT: + entityType = new ExperimentType(); + break; + case DATA_SET: + entityType = new DataSetType(); + ((DataSetType) entityType).setDataSetKind(DataSetKind.PHYSICAL); + break; + case MATERIAL: + entityType = new MaterialType(); + break; + case SAMPLE: + entityType = new SampleType(); + ((SampleType) entityType).setGeneratedCodePrefix("TEST"); + break; + } + entityType.setCode(entityTypeCode); + + // Property Type + final String propertyTypeCode = "TEST_PROPERTY_TYPE_CODE_" + System.currentTimeMillis(); + final String propertyTypeLabel = "TEST_PROPERTY_TYPE_LABEL_" + System.currentTimeMillis(); + final String propertyTypeDescription = "TEST_PROPERTY_TYPE_DESCRIPTION_" + System.currentTimeMillis(); + final DataType dataType = new DataType(); + dataType.setCode(DataTypeCode.INTEGER); + + PropertyType newPropertyType = new PropertyType(); + newPropertyType.setCode(propertyTypeCode); + newPropertyType.setLabel(propertyTypeLabel); + newPropertyType.setDescription(propertyTypeDescription); + newPropertyType.setDataType(dataType); + + // New Assignments + NewETPTAssignment newETPTAssigment = new NewETPTAssignment(); + newETPTAssigment.setEntityKind(entityKind); + newETPTAssigment.setPropertyTypeCode(propertyTypeCode); + newETPTAssigment.setEntityTypeCode(entityTypeCode); + newETPTAssigment.setOrdinal(0L); + + NewPTNewAssigment newPTNewAssigment = new NewPTNewAssigment(); + newPTNewAssigment.setExistingPropertyType(false); + newPTNewAssigment.setPropertyType(newPropertyType); + newPTNewAssigment.setAssignment(newETPTAssigment); + + // Complete Assignments Object + NewETNewPTAssigments assigments = new NewETNewPTAssigments(); + assigments.setEntity(entityType); + List<NewPTNewAssigment> assigmentsList = new ArrayList<NewPTNewAssigment>(); + assigmentsList.add(newPTNewAssigment); + assigments.setAssigments(assigmentsList); + + // Call + commonServer.registerEntitytypeAndAssignPropertyTypes(systemSessionToken, assigments); + + // Validation + List<EntityTypePropertyType<?>> listAssigments = commonServer.listEntityTypePropertyTypes(systemSessionToken, entityType); + + assertEquals(newPropertyType, listAssigments.get(0).getPropertyType()); + } + } + + @Test + public void testUpdateEntitytypeAndPropertyTypes() throws Exception + { + testRegisterEntitytypeAndAssignPropertyTypes(); + for (EntityKind entityKind : EntityKind.values()) + { + // Existing Entity Type + final String entityTypeCode = "TEST_ENTITY_TYPE_CODE_" + entityKind.name(); + List<? extends EntityType> types = null; + EntityType entityType = null; + + switch (entityKind) + { + case EXPERIMENT: + types = commonServer.listExperimentTypes(systemSessionToken); + break; + case DATA_SET: + types = commonServer.listDataSetTypes(systemSessionToken); + break; + case MATERIAL: + types = commonServer.listMaterialTypes(systemSessionToken); + break; + case SAMPLE: + types = commonServer.listSampleTypes(systemSessionToken); + break; + } + + for (EntityType type : types) + { + if (type.getCode().equals(entityTypeCode)) + { + entityType = type; + } + } + + // Complete Assignments Object + NewETNewPTAssigments assigments = new NewETNewPTAssigments(); + assigments.setEntity(entityType); + entityType.getAssignedPropertyTypes().clear(); + assigments.setAssigments(new ArrayList<NewPTNewAssigment>()); + + // Existing Assignments + List<EntityTypePropertyType<?>> listAssigmentsOld = commonServer.listEntityTypePropertyTypes(systemSessionToken, entityType); + for (int i = 0; i < listAssigmentsOld.size(); i++) + { + NewETPTAssignment oldETPTAssigment = new NewETPTAssignment(); + oldETPTAssigment.setEntityKind(listAssigmentsOld.get(i).getEntityKind()); + oldETPTAssigment.setPropertyTypeCode(listAssigmentsOld.get(i).getPropertyType().getCode()); + oldETPTAssigment.setEntityTypeCode(listAssigmentsOld.get(i).getEntityType().getCode()); + oldETPTAssigment.setOrdinal((long) i); + + NewPTNewAssigment oldPTNewAssigment = new NewPTNewAssigment(); + oldPTNewAssigment.setExistingPropertyType(true); + oldPTNewAssigment.setPropertyType(listAssigmentsOld.get(i).getPropertyType()); + oldPTNewAssigment.setAssignment(oldETPTAssigment); + + assigments.refreshOrderAdd(oldPTNewAssigment); + } + + // New Assignments + final String propertyTypeCode = "TEST_PROPERTY_TYPE_CODE_" + System.currentTimeMillis(); + final String propertyTypeLabel = "TEST_PROPERTY_TYPE_LABEL_" + System.currentTimeMillis(); + final String propertyTypeDescription = "TEST_PROPERTY_TYPE_DESCRIPTION_" + System.currentTimeMillis(); + final DataType dataType = new DataType(); + dataType.setCode(DataTypeCode.INTEGER); + + PropertyType newPropertyType = new PropertyType(); + newPropertyType.setCode(propertyTypeCode); + newPropertyType.setLabel(propertyTypeLabel); + newPropertyType.setDescription(propertyTypeDescription); + newPropertyType.setDataType(dataType); + + NewETPTAssignment newETPTAssigment = new NewETPTAssignment(); + newETPTAssigment.setEntityKind(entityKind); + newETPTAssigment.setPropertyTypeCode(propertyTypeCode); + newETPTAssigment.setEntityTypeCode(entityTypeCode); + newETPTAssigment.setOrdinal((long) assigments.getAssigments().size()); + + NewPTNewAssigment newPTNewassignment = new NewPTNewAssigment(); + newPTNewassignment.setExistingPropertyType(false); + newPTNewassignment.setPropertyType(newPropertyType); + newPTNewassignment.setAssignment(newETPTAssigment); + assigments.refreshOrderAdd(newPTNewassignment); + + // Call + commonServer.updateEntitytypeAndPropertyTypes(systemSessionToken, assigments); + + // Validation + List<EntityTypePropertyType<?>> listAssigments = commonServer.listEntityTypePropertyTypes(systemSessionToken, entityType); + for (int i = 0; i < assigments.getAssigments().size(); i++) + { + assertEquals(assigments.getAssigments().get(i).getPropertyType(), listAssigments.get(i).getPropertyType()); + } + } + } } -- GitLab