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 f7b7ee5247a863f45a03b0f1049cd84c933f7a13..6ba013b41a7765a0c0345771ed72e2b5aa72ea55 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java @@ -196,92 +196,18 @@ public class CommonServerTest extends SystemTestCase @Test public void testRegisterEntitytypeAndAssignPropertyTypes() throws Exception { - 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(); - ((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); - - // Complete Assignments Object - NewETNewPTAssigments assigments = new NewETNewPTAssigments(); - assigments.setEntity(entityType); - 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); - - // 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()); - } - } + registerEntitytypeAndAssignPropertyTypesWithId(0); } @Test public void testUpdateEntitytypeAndPropertyTypes() throws Exception { - testRegisterEntitytypeAndAssignPropertyTypes(); + int testId = 1; + registerEntitytypeAndAssignPropertyTypesWithId(testId); for (EntityKind entityKind : EntityKind.values()) { // Existing Entity Type - final String entityTypeCode = "TEST_ENTITY_TYPE_CODE_" + entityKind.name(); + final String entityTypeCode = "TEST_ENTITY_TYPE_CODE_" + entityKind.name() + "_" + testId; List<? extends EntityType> types = null; EntityType entityType = null; @@ -420,9 +346,107 @@ public class CommonServerTest extends SystemTestCase assertEquals(assigments.getAssigments().size(), listAssigments.size()); for (int i = 0; i < assigments.getAssigments().size(); i++) { - assertEquals(assigments.getAssigments().get(i).getPropertyType(), listAssigments.get(i).getPropertyType()); + if (assigments.getAssigments().get(i).getPropertyType().getCode().equals(listAssigments.get(i).getPropertyType().getCode()) + || isContained(assigments.getAssigments().get(i).getPropertyType(), listAssigments)) + { + // Cool, is ok + } else + { + throw new AssertionError("Not contained in list"); + } } } } + public static boolean isContained(PropertyType propertyType, List<EntityTypePropertyType<?>> inList) + { + for (EntityTypePropertyType etpt : inList) + { + if (etpt.getPropertyType().getCode().equals(propertyType.getCode())) + { + return true; + } + } + return false; + } + + public void registerEntitytypeAndAssignPropertyTypesWithId(int testId) throws Exception + { + for (EntityKind entityKind : EntityKind.values()) + { + // Entity Type + final String entityTypeCode = "TEST_ENTITY_TYPE_CODE_" + entityKind.name() + "_" + testId; + EntityType entityType = null; + + switch (entityKind) + { + 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); + + // Complete Assignments Object + NewETNewPTAssigments assigments = new NewETNewPTAssigments(); + assigments.setEntity(entityType); + 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); + + // 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()); + } + } + } }