public void Can_AssignRole()
        {
            //Arrange
            var roleId       = A <int>();
            var userId       = A <int>();
            var registration = CreateDpa((A <int>(), userId));
            var users        = new[] { new User {
                                           Id = A <int>()
                                       }, new User {
                                           Id = userId
                                       } };
            var agreementRole = new DataProcessingRegistrationRole {
                Id = roleId
            };

            ExpectAvailableOption(registration, roleId, agreementRole);
            ExpectOrganizationUsers(registration, Maybe <string> .None, users);

            //Act
            var result = _sut.AssignRole(registration, roleId, userId);

            //Assert
            Assert.True(result.Ok);
            Assert.Equal(roleId, result.Value.Role.Id);
            Assert.Equal(userId, result.Value.User.Id);
        }
        public void Can_RemoveRole()
        {
            //Arrange
            var roleId       = A <int>();
            var userId       = A <int>();
            var registration = CreateDpa((roleId, userId));
            var user         = new User {
                Id = userId
            };
            var agreementRole = new DataProcessingRegistrationRole {
                Id = roleId
            };

            ExpectOption(registration, roleId, agreementRole);
            ExpectGetUser(userId, user);

            //Act
            var result = _sut.RemoveRole(registration, roleId, userId);

            //Assert
            Assert.True(result.Ok);
            var removedRight = result.Value;

            Assert.Equal(roleId, removedRight.RoleId);
            Assert.Equal(userId, removedRight.UserId);
        }
        public void GetUsersWhichCanBeAssignedToRole_Returns_OrganizationUsers_Which_DoesNotAlreadyHaveTheRoleOnTheDpa()
        {
            //Arrange
            var            roleId         = A <int>();
            var            excludedUserId = A <int>();
            var            registration   = CreateDpa((roleId, excludedUserId));
            Maybe <string> emailQuery     = A <string>();
            var            users          = new[] { new User {
                                                        Id = A <int>()
                                                    }, new User {
                                                        Id = A <int>()
                                                    }, new User {
                                                        Id = excludedUserId
                                                    } };
            var agreementRole = new DataProcessingRegistrationRole {
                Id = roleId
            };

            ExpectAvailableOption(registration, roleId, agreementRole);
            ExpectOrganizationUsers(registration, emailQuery, users);

            //Act
            var result = _sut.GetUsersWhichCanBeAssignedToRole(registration, roleId, emailQuery);

            //Assert
            Assert.True(result.Ok);
            Assert.Equal(2, result.Value.Count());
            Assert.Equal(users.Where(x => x.Id != excludedUserId), result.Value.ToList());
        }
        public void Cannot_AssignRole_If_User_Already_Has_Role_On_Dpa()
        {
            //Arrange
            var roleId       = A <int>();
            var userId       = A <int>();
            var registration = CreateDpa((roleId, userId));
            var users        = new[] { new User {
                                           Id = A <int>()
                                       }, new User {
                                           Id = userId
                                       } };
            var agreementRole = new DataProcessingRegistrationRole {
                Id = roleId
            };

            ExpectAvailableOption(registration, roleId, agreementRole);
            ExpectOrganizationUsers(registration, Maybe <string> .None, users);

            //Act
            var result = _sut.AssignRole(registration, roleId, userId);

            //Assert
            Assert.True(result.Failed);
            Assert.Equal(OperationFailure.Conflict, result.Error.FailureType);
        }
Exemplo n.º 5
0
 private static BusinessRoleDTO ToDTO(DataProcessingRegistrationRole role, IReadOnlyDictionary <int, Maybe <string> > localDescriptionOverrides, ISet <int> idsOfAvailableRoles)
 {
     return(new BusinessRoleDTO(
                role.Id,
                role.Name,
                idsOfAvailableRoles.Contains(role.Id) == false,
                role.HasWriteAccess,
                localDescriptionOverrides.ContainsKey(role.Id)
             ? localDescriptionOverrides[role.Id].Match(text => text, () => role.Description)
             : role.Description));
 }
        public void Cannot_RemoveRole_If_UserId_Is_Invalid()
        {
            //Arrange
            var roleId        = A <int>();
            var userId        = A <int>();
            var registration  = CreateDpa((roleId, userId));
            var agreementRole = new DataProcessingRegistrationRole {
                Id = roleId
            };

            ExpectOption(registration, roleId, agreementRole);
            ExpectGetUser(userId, null);

            //Act
            var result = _sut.RemoveRole(registration, roleId, userId);

            //Assert
            Assert.True(result.Failed);
            Assert.Equal(OperationFailure.BadInput, result.Error.FailureType);
        }
        public void Cannot_RemoveRole_If_No_Existing_Assignment()
        {
            //Arrange
            var roleId       = A <int>();
            var userId       = A <int>();
            var registration = CreateDpa((A <int>(), userId)); //Existing user role but different role
            var user         = new User {
                Id = userId
            };
            var agreementRole = new DataProcessingRegistrationRole {
                Id = roleId
            };

            ExpectOption(registration, roleId, agreementRole);
            ExpectGetUser(userId, user);

            //Act
            var result = _sut.RemoveRole(registration, roleId, userId);

            //Assert
            Assert.True(result.Failed);
            Assert.Equal(OperationFailure.BadInput, result.Error.FailureType);
        }
        public void Cannot_AssignRole_If_User_Id_Is_Invalid()
        {
            //Arrange
            var roleId       = A <int>();
            var userId       = A <int>();
            var registration = CreateDpa();
            var users        = new[] { new User {
                                           Id = A <int>()
                                       } };                   //Target user is not included
            var agreementRole = new DataProcessingRegistrationRole {
                Id = roleId
            };

            ExpectAvailableOption(registration, roleId, agreementRole);
            ExpectOrganizationUsers(registration, Maybe <string> .None, users);

            //Act
            var result = _sut.AssignRole(registration, roleId, userId);

            //Assert
            Assert.True(result.Failed);
            Assert.Equal(OperationFailure.BadInput, result.Error.FailureType);
        }
 private static IEnumerable <int> GetIdsOfUsersAssignedToRole(DataProcessingRegistration registration, DataProcessingRegistrationRole role)
 {
     return(registration.GetRights(role.Id).Select(x => x.UserId).Distinct());
 }