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