From fb9b2f0237ac200e55ce5169b563c15f313e614c Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Wed, 15 May 2013 14:14:19 +0000 Subject: [PATCH] SP-625 BIS-398: Advanced tests for new API calls. Ongoing work. SVN: 29149 --- .../openbis/systemtest/CommonServerTest.java | 167 +++++++++++------- 1 file changed, 105 insertions(+), 62 deletions(-) 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 4001a19b1f8..3f4abd3fc1d 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java @@ -20,7 +20,9 @@ import static org.testng.AssertJUnit.assertEquals; import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.List; +import java.util.Random; import org.testng.annotations.Test; @@ -30,6 +32,7 @@ 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.DataSetTypePropertyType; 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; @@ -37,13 +40,16 @@ 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.ExperimentType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentTypePropertyType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialTypePropertyType; 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; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleTypePropertyType; /** * @author Franz-Josef Elmer @@ -188,7 +194,7 @@ public class CommonServerTest extends SystemTestCase } @Test - public void testRegisterEntitytypeAndAssignPropertyTypes() + public void testRegisterEntitytypeAndAssignPropertyTypes() throws Exception { for (EntityKind entityKind : EntityKind.values()) { @@ -200,52 +206,61 @@ public class CommonServerTest extends SystemTestCase { case EXPERIMENT: entityType = new ExperimentType(); + ((ExperimentType) entityType).setExperimentTypePropertyTypes(new ArrayList<ExperimentTypePropertyType>()); break; case DATA_SET: entityType = new DataSetType(); ((DataSetType) entityType).setDataSetKind(DataSetKind.PHYSICAL); + ((DataSetType) entityType).setDataSetTypePropertyTypes(new ArrayList<DataSetTypePropertyType>()); break; case MATERIAL: entityType = new MaterialType(); + ((MaterialType) entityType).setMaterialTypePropertyTypes(new ArrayList<MaterialTypePropertyType>()); break; case SAMPLE: entityType = new SampleType(); ((SampleType) entityType).setGeneratedCodePrefix("TEST"); + ((SampleType) entityType).setSampleTypePropertyTypes(new ArrayList<SampleTypePropertyType>()); 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); + assigments.setAssigments(new ArrayList<NewPTNewAssigment>()); + + Random random = new Random(); + final int numberOfProperties = random.nextInt(20) + 1; + for (int i = 0; i < numberOfProperties; i++) + { + // Property Type + final String propertyTypeCode = "TEST_PROPERTY_TYPE_CODE_" + random.nextInt(); + final String propertyTypeLabel = "TEST_PROPERTY_TYPE_LABEL_" + random.nextInt(); + final String propertyTypeDescription = "TEST_PROPERTY_TYPE_DESCRIPTION_" + random.nextInt(); + 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((long) assigments.getAssigments().size()); + + NewPTNewAssigment newPTNewAssigment = new NewPTNewAssigment(); + newPTNewAssigment.setExistingPropertyType(false); + newPTNewAssigment.setPropertyType(newPropertyType); + newPTNewAssigment.setAssignment(newETPTAssigment); + + assigments.refreshOrderAdd(newPTNewAssigment); + } // Call commonServer.registerEntitytypeAndAssignPropertyTypes(systemSessionToken, assigments); @@ -253,7 +268,10 @@ public class CommonServerTest extends SystemTestCase // Validation List<EntityTypePropertyType<?>> listAssigments = commonServer.listEntityTypePropertyTypes(systemSessionToken, entityType); - assertEquals(newPropertyType, listAssigments.get(0).getPropertyType()); + for (int i = 0; i < assigments.getAssigments().size(); i++) + { + assertEquals(assigments.getAssigments().get(i).getPropertyType(), listAssigments.get(i).getPropertyType()); + } } } @@ -292,54 +310,79 @@ public class CommonServerTest extends SystemTestCase } } + // Existing Properties + List<EntityTypePropertyType<?>> listAssigmentsOld = commonServer.listEntityTypePropertyTypes(systemSessionToken, entityType); + List listAssigmentsOldHack = listAssigmentsOld; + switch (entityKind) + { + case EXPERIMENT: + ((ExperimentType) entityType).setExperimentTypePropertyTypes(listAssigmentsOldHack); + break; + case DATA_SET: + ((DataSetType) entityType).setDataSetTypePropertyTypes(listAssigmentsOldHack); + break; + case MATERIAL: + ((MaterialType) entityType).setMaterialTypePropertyTypes(listAssigmentsOldHack); + break; + case SAMPLE: + ((SampleType) entityType).setSampleTypePropertyTypes(listAssigmentsOldHack); + break; + } + // 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++) + for (int i = 0; i < entityType.getAssignedPropertyTypes().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); + oldETPTAssigment.setEntityKind(entityType.getAssignedPropertyTypes().get(i).getEntityKind()); + oldETPTAssigment.setPropertyTypeCode(entityType.getAssignedPropertyTypes().get(i).getPropertyType().getCode()); + oldETPTAssigment.setEntityTypeCode(entityType.getAssignedPropertyTypes().get(i).getEntityType().getCode()); + oldETPTAssigment.setOrdinal((long) entityType.getAssignedPropertyTypes().get(i).getOrdinal()); + oldETPTAssigment.setModificationDate(entityType.getAssignedPropertyTypes().get(i).getModificationDate()); NewPTNewAssigment oldPTNewAssigment = new NewPTNewAssigment(); oldPTNewAssigment.setExistingPropertyType(true); - oldPTNewAssigment.setPropertyType(listAssigmentsOld.get(i).getPropertyType()); + oldPTNewAssigment.setPropertyType(entityType.getAssignedPropertyTypes().get(i).getPropertyType()); oldPTNewAssigment.setAssignment(oldETPTAssigment); - assigments.refreshOrderAdd(oldPTNewAssigment); + assigments.getAssigments().add(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); + Random random = new Random(); + final int numberOfProperties = random.nextInt(20) + 1; + for (int i = 0; i < numberOfProperties; i++) + { + final String propertyTypeCode = "TEST_PROPERTY_TYPE_CODE_" + random.nextInt(); + final String propertyTypeLabel = "TEST_PROPERTY_TYPE_LABEL_" + random.nextInt(); + final String propertyTypeDescription = "TEST_PROPERTY_TYPE_DESCRIPTION_" + random.nextInt(); + 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) random.nextInt(assigments.getAssigments().size())); + newETPTAssigment.setModificationDate(new Date()); + + NewPTNewAssigment newPTNewassignment = new NewPTNewAssigment(); + newPTNewassignment.setExistingPropertyType(false); + newPTNewassignment.setPropertyType(newPropertyType); + newPTNewassignment.setAssignment(newETPTAssigment); + + assigments.refreshOrderAdd(newPTNewassignment); + } // Call commonServer.updateEntitytypeAndPropertyTypes(systemSessionToken, assigments); -- GitLab