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