Skip to content
Snippets Groups Projects
Commit bd270c40 authored by Adam Laskowski's avatar Adam Laskowski
Browse files

BIS-1002: Added internal property assignment tests

parent faa0762b
No related branches found
No related tags found
1 merge request!40SSDM-13578 : 2PT : Database and V3 Implementation - include the new AFS "free"...
......@@ -23,6 +23,8 @@ import java.util.List;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.ExperimentType;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.create.ExperimentTypeCreation;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.DataType;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.create.PropertyTypeCreation;
import org.testng.annotations.Test;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.interfaces.IEntityType;
......@@ -520,6 +522,76 @@ public abstract class CreateEntityTypeTest<CREATION extends IEntityTypeCreation,
assertNotNull(type);
}
@Test
public void testCreateInternalTypeWithInternalAssignment() {
String sessionToken = v3api.loginAsSystem();
PropertyTypeCreation propertyTypeCreation = new PropertyTypeCreation();
propertyTypeCreation.setCode("$INTERNAL_TYPE");
propertyTypeCreation.setManagedInternally(true);
propertyTypeCreation.setDataType(DataType.VARCHAR);
propertyTypeCreation.setLabel("internal property type");
propertyTypeCreation.setDescription("internal property type");
v3api.createPropertyTypes(sessionToken, Arrays.asList(propertyTypeCreation));
final CREATION typeCreation = newTypeCreation();
typeCreation.setCode("NEW_INTERNAL_ENTITY_TYPE");
typeCreation.setManagedInternally(true);
PropertyAssignmentCreation assignmentCreationInternal = new PropertyAssignmentCreation();
assignmentCreationInternal.setPropertyTypeId(new PropertyTypePermId("$INTERNAL_TYPE"));
assignmentCreationInternal.setManagedInternally(true);
PropertyAssignmentCreation assignmentCreation = new PropertyAssignmentCreation();
assignmentCreation.setPropertyTypeId(new PropertyTypePermId("DESCRIPTION"));
typeCreation.setPropertyAssignments(Arrays.asList(assignmentCreationInternal, assignmentCreation));
createTypes(sessionToken, Arrays.asList(typeCreation));
TYPE type = getType(sessionToken, "$" + typeCreation.getCode());
assertNotNull(type);
assertNotNull(type.getPropertyAssignments());
assertEquals(type.getPropertyAssignments().size(), 2);
}
@Test
public void testCreateTypeWithInternalAssignment_fail() {
String sessionToken = v3api.loginAsSystem();
PropertyTypeCreation propertyTypeCreation = new PropertyTypeCreation();
propertyTypeCreation.setCode("$INTERNAL_TYPE");
propertyTypeCreation.setManagedInternally(true);
propertyTypeCreation.setDataType(DataType.VARCHAR);
propertyTypeCreation.setLabel("internal property type");
propertyTypeCreation.setDescription("internal property type");
v3api.createPropertyTypes(sessionToken, Arrays.asList(propertyTypeCreation));
final CREATION typeCreation = newTypeCreation();
typeCreation.setCode("NEW_NON_INTERNAL_ENTITY_TYPE");
typeCreation.setManagedInternally(false);
PropertyAssignmentCreation assignmentCreationInternal = new PropertyAssignmentCreation();
assignmentCreationInternal.setPropertyTypeId(new PropertyTypePermId("$INTERNAL_TYPE"));
assignmentCreationInternal.setManagedInternally(true);
PropertyAssignmentCreation assignmentCreation = new PropertyAssignmentCreation();
assignmentCreation.setPropertyTypeId(new PropertyTypePermId("DESCRIPTION"));
typeCreation.setPropertyAssignments(Arrays.asList(assignmentCreationInternal, assignmentCreation));
assertUserFailureException(new IDelegatedAction()
{
@Override
public void execute()
{
createTypes(sessionToken, Arrays.asList(typeCreation));
}
}, "Only internal entity types can have internal property assignments!");
}
@Test
public void testCreateMultipleTypesBySystem_failBecauseExists() {
......
......@@ -16,6 +16,7 @@
package ch.ethz.sis.openbis.systemtest.asapi.v3;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import java.util.ArrayList;
import java.util.Arrays;
......@@ -709,7 +710,7 @@ public abstract class UpdateEntityTypeTest<CREATION extends IEntityTypeCreation,
@Test
public void testUpdateInternalEntityTypeAsSystemUser()
{ //621359191756
{
String sessionToken = v3api.loginAsSystem();
CREATION entityTypeCreation = newTypeCreation();
......@@ -732,6 +733,89 @@ public abstract class UpdateEntityTypeTest<CREATION extends IEntityTypeCreation,
assertEquals(type.getDescription(), "New description");
}
@Test
public void testUpdateInternalEntityTypeAssignment_addInternalAssignment()
{
String sessionToken = v3api.loginAsSystem();
// Given
PropertyTypeCreation propertyTypeCreation = new PropertyTypeCreation();
propertyTypeCreation.setCode("$INTERNAL_TYPE");
propertyTypeCreation.setManagedInternally(true);
propertyTypeCreation.setDataType(DataType.VARCHAR);
propertyTypeCreation.setLabel("internal property type");
propertyTypeCreation.setDescription("internal property type");
v3api.createPropertyTypes(sessionToken, Arrays.asList(propertyTypeCreation));
final CREATION typeCreation = newTypeCreation();
typeCreation.setCode("NEW_INTERNAL_ENTITY_TYPE");
typeCreation.setManagedInternally(true);
PropertyAssignmentCreation assignmentCreation = new PropertyAssignmentCreation();
assignmentCreation.setPropertyTypeId(new PropertyTypePermId("DESCRIPTION"));
typeCreation.setPropertyAssignments(Arrays.asList(assignmentCreation));
EntityTypePermId typeId = createTypes(sessionToken, Arrays.asList(typeCreation)).get(0);
TYPE type = getType(sessionToken, typeId);
assertNotNull(type);
// When
UPDATE update = newTypeUpdate();
update.setTypeId(typeId);
update.setDescription("New description");
PropertyAssignmentCreation assignmentCreationInternal = new PropertyAssignmentCreation();
assignmentCreationInternal.setPropertyTypeId(new PropertyTypePermId("$INTERNAL_TYPE"));
assignmentCreationInternal.setManagedInternally(true);
update.getPropertyAssignments().add(assignmentCreationInternal);
updateTypes(sessionToken, Arrays.asList(update));
type = getType(sessionToken, typeId);
assertEquals(type.getDescription(), "New description");
assertEquals(type.getPropertyAssignments().size(), 2);
}
@Test
public void testUpdateEntityTypeAssignment_addInternalAssignment_shouldFail()
{
String sessionToken = v3api.loginAsSystem();
UPDATE update = newTypeUpdate();
EntityTypePermId typeId = getTypeId();
update.setTypeId(typeId);
// Given
PropertyTypeCreation propertyTypeCreation = new PropertyTypeCreation();
propertyTypeCreation.setCode("$INTERNAL_TYPE");
propertyTypeCreation.setManagedInternally(true);
propertyTypeCreation.setDataType(DataType.VARCHAR);
propertyTypeCreation.setLabel("internal property type");
propertyTypeCreation.setDescription("internal property type");
v3api.createPropertyTypes(sessionToken, Arrays.asList(propertyTypeCreation));
PropertyAssignmentCreation assignmentCreationInternal = new PropertyAssignmentCreation();
assignmentCreationInternal.setPropertyTypeId(new PropertyTypePermId("$INTERNAL_TYPE"));
assignmentCreationInternal.setManagedInternally(true);
update.getPropertyAssignments().add(assignmentCreationInternal);
assertUserFailureException(new IDelegatedAction()
{
@Override
public void execute()
{
// When
updateTypes(sessionToken, Arrays.asList(update));
}
},
"Internal property assignments can be used for internal entity types");
}
@Test
public void testSetPropertyTypeAssignment()
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment