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); }
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()); }