public async Task Given_An_Invalid_ModelState_Should_Return_BadRequestResult() { // Arrange var confirmEmailQueryParameters = new ConfirmEmailQueryParameters(); _sut.ModelState.AddModelError("UserId", "UserId is required"); // Act var result = await _sut.ConfirmEmail(confirmEmailQueryParameters); // Assert result.Should().BeOfType <NoContentResult>(); }
public void Given_A_Valid_ModelState_If_User_Is_Not_Found_Should_Throw_ApplicationException() { // Arrange var confirmEmailQueryParameters = new ConfirmEmailQueryParameters { Code = "sdfsfsoifl", ReturnUrl = "/", UserId = Guid.NewGuid().ToString() }; // Act Func <Task <IActionResult> > act = () => _sut.ConfirmEmail(confirmEmailQueryParameters); // Assert act.Should().Throw <ApplicationException>(); }
public async Task Given_A_Valid_ModelState_If_User_Is_Found_And_Email_Confirmation_Succeeds_Should_Return_RedirectResult() { // Arrange var confirmEmailQueryParameters = new ConfirmEmailQueryParameters { Code = "sdfsfsoifl", ReturnUrl = "/", UserId = Guid.NewGuid().ToString() }; _userManager.FindByIdAsync(Arg.Any <string>()).Returns(new ApplicationUser()); _userManager.ConfirmEmailAsync(Arg.Any <ApplicationUser>(), Arg.Any <string>()).Returns(IdentityResult.Success); // Act var result = await _sut.ConfirmEmail(confirmEmailQueryParameters); // Assert result.Should().BeOfType <RedirectResult>(); }
public async Task Given_A_Valid_ModelState_If_User_Is_Found_And_Email_Confirmation_Fails_Should_Return_BadRequest() { // Arrange var confirmEmailQueryParameters = new ConfirmEmailQueryParameters { Code = "sdfsfsoifl", ReturnUrl = "/", UserId = Guid.NewGuid().ToString() }; _userManager.FindByIdAsync(Arg.Any <string>()).Returns(new ApplicationUser()); _userManager.ConfirmEmailAsync(Arg.Any <ApplicationUser>(), Arg.Any <string>()).Returns(IdentityResult.Failed(new IdentityError { Description = "Code is Invalid" })); // Act var result = await _sut.ConfirmEmail(confirmEmailQueryParameters); // Assert result.Should().BeOfType <BadRequestObjectResult>(); }
public async Task <IActionResult> ConfirmEmail([FromQuery] ConfirmEmailQueryParameters queryParameters) { if (ModelState.IsValid) { var user = await _userManager.FindByIdAsync(queryParameters.UserId); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{queryParameters.UserId}'."); } var result = await _userManager.ConfirmEmailAsync(user, queryParameters.Code); if (result.Succeeded) { return(Redirect(queryParameters.ReturnUrl)); } return(BadRequest(result.Errors.Descriptions())); } return(NoContent()); }