use of eu.bcvsolutions.idm.core.api.dto.IdmRoleTreeNodeDto in project CzechIdMng by bcvsolutions.
the class DefaultIdmContractPositionServiceIntegrationTest method testPreventToRemoveRoles.
/**
* Prevent to remove automatic roles assigned by contract position, when contract primary position is changed.
*/
@Test
public void testPreventToRemoveRoles() {
IdmRoleDto roleOne = getHelper().createRole();
IdmTreeNodeDto treeNodeOne = getHelper().createTreeNode();
IdmRoleTreeNodeDto automaticRoleOne = getHelper().createAutomaticRole(roleOne, treeNodeOne);
//
IdmRoleDto roleTwo = getHelper().createRole();
IdmTreeNodeDto treeNodeTwo = getHelper().createTreeNode();
IdmRoleTreeNodeDto automaticRoleTwo = getHelper().createAutomaticRole(roleTwo, treeNodeTwo);
//
// create identity
IdmIdentityDto identity = getHelper().createIdentity((GuardedString) null);
IdmIdentityContractDto contract = getHelper().getPrimeContract(identity);
//
// empty roles
IdmIdentityRoleFilter filter = new IdmIdentityRoleFilter();
filter.setIdentityId(identity.getId());
List<IdmIdentityRoleDto> assignedRoles = identityRoleService.find(filter, null).getContent();
Assert.assertTrue(assignedRoles.isEmpty());
//
// create contract positon
IdmContractPositionDto contractPosition = getHelper().createContractPosition(contract, treeNodeOne);
assignedRoles = identityRoleService.find(filter, null).getContent();
Assert.assertEquals(1, assignedRoles.size());
Assert.assertTrue(assignedRoles.stream().anyMatch(ir -> ir.getAutomaticRole().equals(automaticRoleOne.getId())));
//
// update contract
contract.setWorkPosition(treeNodeTwo.getId());
contract = contractService.save(contract);
//
assignedRoles = identityRoleService.find(filter, null).getContent();
Assert.assertEquals(2, assignedRoles.size());
Assert.assertTrue(assignedRoles.stream().anyMatch(ir -> ir.getAutomaticRole().equals(automaticRoleOne.getId())));
Assert.assertTrue(assignedRoles.stream().anyMatch(ir -> ir.getAutomaticRole().equals(automaticRoleTwo.getId())));
//
// clear prime contract position
contract.setWorkPosition(null);
contract = contractService.save(contract);
//
assignedRoles = identityRoleService.find(filter, null).getContent();
Assert.assertEquals(1, assignedRoles.size());
Assert.assertTrue(assignedRoles.stream().anyMatch(ir -> ir.getAutomaticRole().equals(automaticRoleOne.getId())));
//
contract.setWorkPosition(treeNodeTwo.getId());
contract = contractService.save(contract);
//
// remove contract
service.delete(contractPosition);
//
assignedRoles = identityRoleService.find(filter, null).getContent();
Assert.assertEquals(1, assignedRoles.size());
Assert.assertTrue(assignedRoles.stream().anyMatch(ir -> ir.getAutomaticRole().equals(automaticRoleTwo.getId())));
//
// remove contract position
contractService.delete(contract);
//
assignedRoles = identityRoleService.find(filter, null).getContent();
Assert.assertTrue(assignedRoles.isEmpty());
}
use of eu.bcvsolutions.idm.core.api.dto.IdmRoleTreeNodeDto in project CzechIdMng by bcvsolutions.
the class DefaultIdmContractPositionServiceIntegrationTest method testChangeContractValidityWithAssignedRoles.
@Test
@Transactional
public void testChangeContractValidityWithAssignedRoles() {
IdmRoleDto role = getHelper().createRole();
IdmTreeNodeDto treeNode = getHelper().createTreeNode();
IdmRoleTreeNodeDto automaticRole = getHelper().createAutomaticRole(role, treeNode);
IdmIdentityDto identity = getHelper().createIdentity((GuardedString) null);
IdmIdentityContractDto contract = getHelper().getPrimeContract(identity);
IdmContractPositionDto position = getHelper().createContractPosition(contract, treeNode);
// other
getHelper().createContractPosition(contract, getHelper().createTreeNode());
//
List<IdmIdentityRoleDto> assignedRoles = identityRoleService.findAllByIdentity(identity.getId());
Assert.assertEquals(1, assignedRoles.size());
Assert.assertEquals(automaticRole.getId(), assignedRoles.get(0).getAutomaticRole());
Assert.assertEquals(position.getId(), assignedRoles.get(0).getContractPosition());
Assert.assertNull(assignedRoles.get(0).getValidTill());
//
contract.setValidTill(LocalDate.now().plusDays(2));
contract = contractService.save(contract);
//
assignedRoles = identityRoleService.findAllByIdentity(identity.getId());
Assert.assertEquals(1, assignedRoles.size());
Assert.assertEquals(contract.getValidTill(), assignedRoles.get(0).getValidTill());
}
use of eu.bcvsolutions.idm.core.api.dto.IdmRoleTreeNodeDto in project CzechIdMng by bcvsolutions.
the class DefaultIdmContractPositionServiceIntegrationTest method testDontRemoveSameRole.
@Test
@Transactional
public void testDontRemoveSameRole() {
IdmRoleDto role = getHelper().createRole();
IdmTreeNodeDto treeNode = getHelper().createTreeNode();
IdmRoleTreeNodeDto automaticRole = getHelper().createAutomaticRole(role, treeNode);
IdmIdentityDto identity = getHelper().createIdentity((GuardedString) null);
IdmIdentityContractDto contract = getHelper().getPrimeContract(identity);
IdmContractPositionDto position = getHelper().createContractPosition(contract, treeNode);
// other
getHelper().createContractPosition(contract, getHelper().createTreeNode());
//
List<IdmIdentityRoleDto> assignedRoles = identityRoleService.findAllByIdentity(identity.getId());
Assert.assertEquals(1, assignedRoles.size());
Assert.assertEquals(automaticRole.getId(), assignedRoles.get(0).getAutomaticRole());
Assert.assertEquals(position.getId(), assignedRoles.get(0).getContractPosition());
IdmIdentityRoleDto assignedRole = assignedRoles.get(0);
//
IdmTreeNodeDto treeNodeOther = getHelper().createTreeNode();
IdmRoleTreeNodeDto automaticRoleOther = getHelper().createAutomaticRole(role, treeNodeOther);
//
// change position
position.setWorkPosition(treeNodeOther.getId());
position = service.save(position);
//
assignedRoles = identityRoleService.findAllByIdentity(identity.getId());
Assert.assertEquals(1, assignedRoles.size());
Assert.assertEquals(automaticRoleOther.getId(), assignedRoles.get(0).getAutomaticRole());
Assert.assertEquals(position.getId(), assignedRoles.get(0).getContractPosition());
Assert.assertEquals(assignedRole.getId(), assignedRoles.get(0).getId());
}
use of eu.bcvsolutions.idm.core.api.dto.IdmRoleTreeNodeDto in project CzechIdMng by bcvsolutions.
the class DefaultIdmContractPositionServiceIntegrationTest method saveAutomaticRole.
private IdmRoleTreeNodeDto saveAutomaticRole(IdmRoleTreeNodeDto automaticRole, boolean withLongRunningTask) {
// default name
automaticRole.setName("default");
IdmRoleTreeNodeDto roleTreeNode = roleTreeNodeService.saveInternal(automaticRole);
//
if (withLongRunningTask) {
ProcessAutomaticRoleByTreeTaskExecutor task = new ProcessAutomaticRoleByTreeTaskExecutor();
task.setAutomaticRoles(Lists.newArrayList(roleTreeNode.getId()));
taskManager.executeSync(task);
}
//
return roleTreeNodeService.get(roleTreeNode.getId());
}
use of eu.bcvsolutions.idm.core.api.dto.IdmRoleTreeNodeDto in project CzechIdMng by bcvsolutions.
the class DefaultIdmContractPositionServiceIntegrationTest method testDeleteAutomaticRoleWithContractAlreadyExists.
@Test
public void testDeleteAutomaticRoleWithContractAlreadyExists() {
IdmRoleDto role = getHelper().createRole();
IdmTreeNodeDto treeNode = getHelper().createTreeNode();
IdmRoleTreeNodeDto automaticRole = getHelper().createAutomaticRole(role, treeNode);
IdmIdentityDto identity = getHelper().createIdentity((GuardedString) null);
IdmIdentityContractDto contract = getHelper().getPrimeContract(identity);
IdmContractPositionDto position = getHelper().createContractPosition(contract, treeNode);
// other
getHelper().createContractPosition(contract, getHelper().createTreeNode());
//
List<IdmIdentityRoleDto> assignedRoles = identityRoleService.findAllByIdentity(identity.getId());
Assert.assertEquals(1, assignedRoles.size());
Assert.assertEquals(automaticRole.getId(), assignedRoles.get(0).getAutomaticRole());
Assert.assertEquals(position.getId(), assignedRoles.get(0).getContractPosition());
//
// delete definition
roleTreeNodeService.delete(automaticRole);
//
assignedRoles = identityRoleService.findAllByIdentity(identity.getId());
Assert.assertTrue(assignedRoles.isEmpty());
}
Aggregations