Exemplo n.º 1
0
        public async Task EditUserPost_ShouldReturnRedirectToActionWhenValidUserId()
        {
            // Arrange
            string tempDataSuccessMessage = null;

            IdentityRegisterViewModel formModel = new IdentityRegisterViewModel()
            {
                Email    = "NewEmail",
                Username = "******"
            };

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

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

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

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

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

            controller.TempData = tempData.Object;

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

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

            tempDataSuccessMessage.Should().Be(EditUserMessageUpdated);
        }
Exemplo n.º 2
0
        public async Task EditUserPost_ShouldReturnViewWithModelWhenUpdateAsyncFailed()
        {
            // Arrange
            IdentityRegisterViewModel formModel = new IdentityRegisterViewModel()
            {
                Email    = "NewEmail",
                Username = "******"
            };

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

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

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

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

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

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

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

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

            returnedModel.Email.Should().Be(formModel.Email);
            returnedModel.Username.Should().Be(formModel.Username);
        }
Exemplo n.º 3
0
        public async Task <IActionResult> EditUser(string id, IdentityRegisterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = await this.userManager.FindByIdAsync(id);

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

            user.UserName  = model.Username;
            user.FirstName = model.FirstName;
            user.LastName  = model.LastName;
            user.Email     = model.Email;

            var result = await this.userManager.UpdateAsync(user);

            if (!result.Succeeded)
            {
                AddErrors(result);

                return(View(model));
            }

            this.TempData["SuccessMessage"] = $"User \"{model.Username}\" was updated successfuly!";

            return(RedirectToAction(nameof(AllUsers)));
        }
Exemplo n.º 4
0
        public async Task EditUserGet_ShouldReturnViewWithCorrectModelWhenValidUserId()
        {
            // Arrange
            Mock <UserManager <User> > userManager = this.GetAndSetUserManagerMock();

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

            // Act
            IActionResult actionResult = await controller.EditUser(FirstUserId);

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

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

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

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

            returnedModel.Email.Should().Be(FirstUserEmail);
            returnedModel.Username.Should().Be(FirstUserUsername);
        }