public async Task DeleteUserPost_ShouldReturnViewWithModelWhenDeleteAsyncFailed()
        {
            // Arrange
            DeleteUserFormModel formModel = new DeleteUserFormModel()
            {
                Username = FirstUserUsername
            };

            Mock <UserManager <User> > userManager = this.GetAndSetUserManagerMock();

            userManager
            .Setup(um => um.DeleteAsync(It.IsAny <User>()))
            .ReturnsAsync(IdentityResult.Failed(new IdentityError {
                Description = "test"
            }));

            UsersController controller = new UsersController(null, null, userManager.Object);

            // Act
            IActionResult actionResult = await controller.DeleteUser(FirstUserId, formModel);

            // Assert
            actionResult.Should().BeOfType <ViewResult>();

            object model = actionResult.As <ViewResult>().Model;

            model.Should().BeOfType <DeleteUserFormModel>();

            var returnedModel = model.As <DeleteUserFormModel>();

            returnedModel.Username.Should().Be(formModel.Username);
        }
        public async Task DeleteUserPost_ShouldReturnRedirectToActionWhenValidUserId()
        {
            // Arrange
            string tempDataSuccessMessage = null;

            DeleteUserFormModel formModel = new DeleteUserFormModel()
            {
                Username = FirstUserUsername
            };

            Mock <UserManager <User> > userManager = this.GetAndSetUserManagerMock();

            userManager
            .Setup(um => um.DeleteAsync(It.IsAny <User>()))
            .ReturnsAsync(IdentityResult.Success);

            Mock <ITempDataDictionary> tempData = new Mock <ITempDataDictionary>();

            tempData.SetupSet(t => t[WebConstants.TempDataSuccessMessageKey]        = It.IsAny <string>())
            .Callback((string key, object successMessage) => tempDataSuccessMessage = successMessage as string);

            UsersController controller = new UsersController(null, null, userManager.Object);

            controller.TempData = tempData.Object;

            // Act
            IActionResult actionResult = await controller.DeleteUser(FirstUserId, formModel);

            // Assert
            actionResult.Should().BeOfType <RedirectToActionResult>();
            actionResult.As <RedirectToActionResult>().ActionName.Should().Be("Index");

            tempDataSuccessMessage.Should().Be(MessageDeleted);
        }
Exemple #3
0
        public async Task <IActionResult> DeleteUser(string id, int page = 1, string search = null)
        {
            User user = await this.userManager.FindByIdAsync(id);

            if (user == null)
            {
                return(NotFound());
            }

            var formModel = new DeleteUserFormModel()
            {
                CurrentPage = page,
                Email       = user.Email,
                Search      = search,
                Username    = user.UserName
            };

            return(View(formModel));
        }
        public async Task DeleteUserGet_ShouldReturnViewWithCorrectModelWhenValidUserId()
        {
            // Arrange
            Mock <UserManager <User> > userManager = this.GetAndSetUserManagerMock();

            UsersController controller = new UsersController(null, null, userManager.Object);

            // Act
            IActionResult actionResult = await controller.DeleteUser(FirstUserId, 1, null);

            // Arrange
            actionResult.Should().BeOfType <ViewResult>();

            object model = actionResult.As <ViewResult>().Model;

            model.Should().BeOfType <DeleteUserFormModel>();

            DeleteUserFormModel returnedModel = model.As <DeleteUserFormModel>();

            returnedModel.Username.Should().Be(FirstUserUsername);
        }
Exemple #5
0
        public async Task <IActionResult> DeleteUser(string id, DeleteUserFormModel formModel)
        {
            User user = await this.userManager.FindByIdAsync(id);

            if (user == null)
            {
                return(NotFound());
            }

            IdentityResult result = await this.userManager.DeleteAsync(user);

            if (!result.Succeeded)
            {
                this.AddModelErrors(result);

                return(View(formModel));
            }

            TempData.AddSuccessMessage(string.Format(UserDeletedMessage, user.UserName));

            return(RedirectToAction(nameof(Index), new { page = formModel.CurrentPage, search = formModel.Search }));
        }