public async Task <IActionResult> UnassignRoleToUserAsync(UserRoleAssignmentRequest request)
        {
            if (request == null)
            {
                return(BadRequest(new ResultMessage
                {
                    OperationStatus = false,
                    ErrorMessages = new List <string> {
                        MessageResources.RoleUnassignmentRequestEmpty
                    }
                }));
            }

            try
            {
                ResultMessage result = await _identityService.UnassignRoleToUserAsync(request).ConfigureAwait(false);

                return(Ok(result));
            }
            catch (Exception)
            {
                return(StatusCode(500, new ResultMessage
                {
                    OperationStatus = false,
                    ErrorMessages = new List <string>
                    {
                        MessageResources.RoleUnassignmentRequestFailed
                    }
                }));
            }
        }
Exemplo n.º 2
0
        public async Task UnassignRoleToUserAsync_NotNullRequest_IdentityServiceReturnsResponse_ReturnOkResult()
        {
            // Arrange
            UserRoleAssignmentRequest request = new UserRoleAssignmentRequest
            {
                Login    = "******",
                RoleName = "bully"
            };

            _identityServiceMock.Setup(mock => mock.UnassignRoleToUserAsync(request)).ReturnsAsync(new ResultMessage
            {
                OperationStatus = true
            });


            // Act
            OkObjectResult result = await _usersController.UnassignRoleToUserAsync(request).ConfigureAwait(false)
                                    as OkObjectResult;

            // Assert
            Assert.NotNull(result);;
            ResultMessage authenticationResult = result.Value as ResultMessage;

            Assert.True(authenticationResult.OperationStatus);
        }
Exemplo n.º 3
0
        public async Task UnassignRoleToUserAsync_RequestNotNull_FailingAssignment_ReturnErrorMessage()
        {
            // Arrange
            UserRoleAssignmentRequest request = new UserRoleAssignmentRequest
            {
                Login    = "******",
                RoleName = "bully"
            };
            User identityUser = new User
            {
                UserName = request.Login
            };
            string errorMessage = "haw-haw";

            _userManagerMock.Setup(mock => mock.FindByNameAsync(request.Login)).ReturnsAsync(identityUser);
            _userManagerMock.Setup(mock => mock.RemoveFromRoleAsync(identityUser, request.RoleName)).ReturnsAsync(
                IdentityResult.Failed(new IdentityError {
                Description = errorMessage
            }));

            // Act
            ResultMessage resultMessage = await _identityService.UnassignRoleToUserAsync(request).ConfigureAwait(false);

            // Assert
            Assert.NotNull(resultMessage);
            Assert.False(resultMessage.OperationStatus);
            Assert.Equal(errorMessage, resultMessage.ErrorMessages.First());
        }
        /// <inheritdoc />
        public async Task <ResultMessage> UnassignRoleToUserAsync(UserRoleAssignmentRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            if (request.RoleName == "ADMINISTRATOR")
            {
                return(new ResultMessage
                {
                    OperationStatus = false,
                    ErrorMessages = new List <string>
                    {
                        MessageResources.UnassignAdminRole
                    }
                });
            }

            User identityUser = await _userManager.FindByNameAsync(request.Login).ConfigureAwait(false);

            IdentityResult result = await _userManager.RemoveFromRoleAsync(identityUser, request.RoleName).ConfigureAwait(false);

            return(new ResultMessage
            {
                OperationStatus = result.Succeeded,
                ErrorMessages = result.Errors?.Select(err => err.Description)
            });
        }
Exemplo n.º 5
0
        public async Task UnassignRoleToUserAsync_RequestNull_ThrowArgumentNullException()
        {
            // Arrange
            UserRoleAssignmentRequest request = null;

            // Act + Assert
            ArgumentNullException exception = await Assert.ThrowsAsync <ArgumentNullException>(() =>
                                                                                               _identityService.UnassignRoleToUserAsync(request)).ConfigureAwait(false);

            Assert.NotNull(exception);
            Assert.Equal(string.Format(ErrorMessages.NullExceptionMessage, "request"), exception.Message);
        }
Exemplo n.º 6
0
        public async Task UnassignRoleToUserAsync_NullRequest_ReturnBadRequest()
        {
            // Arrange
            UserRoleAssignmentRequest request = null;

            // Act
            BadRequestObjectResult result = await _usersController.UnassignRoleToUserAsync(request).ConfigureAwait(false)
                                            as BadRequestObjectResult;

            // Assert
            Assert.NotNull(result);
            ResultMessage objectResult = result.Value as ResultMessage;

            Assert.False(objectResult.OperationStatus);
            Assert.Equal(MessageResources.RoleUnassignmentRequestEmpty, objectResult.ErrorMessages.First());
        }
        /// <inheritdoc />
        public async Task <ResultMessage> AssignRoleToUserAsync(UserRoleAssignmentRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            User identityUser = await _userManager.FindByNameAsync(request.Login).ConfigureAwait(false);

            IdentityResult result = await _userManager.AddToRoleAsync(identityUser, request.RoleName).ConfigureAwait(false);

            return(new ResultMessage
            {
                OperationStatus = result.Succeeded,
                ErrorMessages = result.Errors?.Select(err => err.Description)
            });
        }
Exemplo n.º 8
0
        public async Task UnassignRoleToUserAsync_RequestNotNull_AdminRole_ThrowArgumentNullException()
        {
            // Arrange
            UserRoleAssignmentRequest request = new UserRoleAssignmentRequest
            {
                Login    = "******",
                RoleName = "ADMINISTRATOR"
            };

            // Act
            ResultMessage result = await _identityService.UnassignRoleToUserAsync(request).ConfigureAwait(false);

            // Assert
            Assert.NotNull(result);
            Assert.False(result.OperationStatus);
            Assert.Equal(MessageResources.UnassignAdminRole,
                         result.ErrorMessages.First());
        }
Exemplo n.º 9
0
        public async Task UnassignRoleToUserAsync_RequestNotNull_SuccessfulAssignment_ReturnSuccessMessage()
        {
            // Arrange
            UserRoleAssignmentRequest request = new UserRoleAssignmentRequest
            {
                Login    = "******",
                RoleName = "bully"
            };
            User identityUser = new User
            {
                UserName = request.Login
            };

            _userManagerMock.Setup(mock => mock.FindByNameAsync(request.Login)).ReturnsAsync(identityUser);
            _userManagerMock.Setup(mock => mock.RemoveFromRoleAsync(identityUser, request.RoleName)).ReturnsAsync(
                IdentityResult.Success);

            // Act
            ResultMessage resultMessage = await _identityService.UnassignRoleToUserAsync(request).ConfigureAwait(false);

            // Assert
            Assert.NotNull(resultMessage);
            Assert.True(resultMessage.OperationStatus);
        }
Exemplo n.º 10
0
        public async Task UnassignRoleToUserAsync_NotNullRequest_IdentityServiceThrowsException_ReturnServerError()
        {
            // Arrange
            UserRoleAssignmentRequest request = new UserRoleAssignmentRequest
            {
                Login    = "******",
                RoleName = "bully"
            };

            _identityServiceMock.Setup(mock => mock.UnassignRoleToUserAsync(request)).ThrowsAsync(new Exception());

            // Act
            ObjectResult result = await _usersController.UnassignRoleToUserAsync(request).ConfigureAwait(false)
                                  as ObjectResult;

            // Assert
            Assert.NotNull(result);
            Assert.Equal(500, result.StatusCode);
            ResultMessage resultObject = result.Value as ResultMessage;

            Assert.False(resultObject.OperationStatus);
            Assert.Equal(MessageResources.RoleUnassignmentRequestFailed,
                         resultObject.ErrorMessages.First());
        }