示例#1
0
        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>();
        }
示例#2
0
        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>();
        }
示例#3
0
        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>();
        }
示例#4
0
        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>();
        }
示例#5
0
        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());
        }