public void ShouldHaveValidationErrorGreaterThan255CharactersEmail(string email)
        {
            ForgotPasswordUserRequestModel requestModel = new ForgotPasswordUserRequestModel()
            {
                Email = email
            };

            _validator.ShouldHaveValidationErrorFor(r => r.Email, requestModel).WithErrorMessage("email must be less than 254 characters.");
        }
        public void ShouldHaveValidationErrorWithInvalidEmail(string email)
        {
            ForgotPasswordUserRequestModel requestModel = new ForgotPasswordUserRequestModel()
            {
                Email = email
            };

            _validator.ShouldHaveValidationErrorFor(r => r.Email, requestModel).WithErrorMessage("email must be a valid email.");
        }
Exemplo n.º 3
0
        public async Task <IActionResult> ForgotPassword(ForgotPasswordUserRequestModel model)
        {
            try
            {
                await _userService.ForgotPassword(model);

                return(Ok());
            }
            catch (Exception exception)
            {
                return(this.HandleExceptionToUserAndLogIfExceptionIsUnexpected(exception));
            }
        }
Exemplo n.º 4
0
        public async Task ShouldThrowUserNotConfirmedExceptionOnOnCallForgotPasswordWithNotConfirmedUser()
        {
            ForgotPasswordUserRequestModel model = new ForgotPasswordUserRequestModel()
            {
                Email = _fakeNotConfirmedInsertedUser.Email
            };

            _userRepositoryMock.GetByEmail(Arg.Any <string>()).Returns(_fakeNotConfirmedInsertedUser);

            Exception exception = await Record.ExceptionAsync(() => _userService.ForgotPassword(model));

            Assert.IsType <UserNotConfirmedException>(exception);
        }
Exemplo n.º 5
0
        public async Task ShouldReturnOkStatusCodeOnCallForgotPassword()
        {
            await InsertUserOnDatabase();

            ForgotPasswordUserRequestModel model = new ForgotPasswordUserRequestModel()
            {
                Email = "*****@*****.**"
            };

            HttpResponseMessage httpResponse = await _httpClient.PostAsync("../users/forgot-password", _createRequestHelper.CreateStringContent(model));

            Assert.Equal((int)HttpStatusCode.OK, (int)httpResponse.StatusCode);
        }
Exemplo n.º 6
0
        public async Task ShouldThrowResourceNotFoundExceptionOnCallForgotPasswordWithNotExistsUser()
        {
            User notExistsUser = null;
            ForgotPasswordUserRequestModel model = new ForgotPasswordUserRequestModel()
            {
                Email = "*****@*****.**"
            };

            _userRepositoryMock.GetByEmail(Arg.Any <string>()).Returns(notExistsUser);

            Exception exception = await Record.ExceptionAsync(() => _userService.ForgotPassword(model));

            Assert.IsType <ResourceNotFoundException>(exception);
        }
Exemplo n.º 7
0
        public async Task ForgotPassword(ForgotPasswordUserRequestModel model)
        {
            await new ForgotPasswordUserValidator().ValidateRequestModelAndThrow(model);

            User user = await _userRepository.GetByEmail(model.Email);

            ThrowIfUserIsNullOrNotConfirmed(user);

            user.UpdateResetPasswordCode(_randomCodeUtils.GenerateRandomCode());

            _userRepository.Update(user);
            await _userRepository.Save();

            await _emailUtils.SendEmail(user.Email, "Reset Password", $"Reset your password with this code: {user.ResetPasswordCode}");
        }
Exemplo n.º 8
0
        public async Task ShouldCallForgotPasswordUserWithSuccess()
        {
            ForgotPasswordUserRequestModel model = new ForgotPasswordUserRequestModel()
            {
                Email = _fakeConfirmedInsertedUser.Email
            };

            _userRepositoryMock.GetByEmail(Arg.Any <string>()).Returns(_fakeConfirmedInsertedUser);

            Exception exception = await Record.ExceptionAsync(() => _userService.ForgotPassword(model));

            _randomCodeUtils.Received(1).GenerateRandomCode();
            _userRepositoryMock.Received(1).Update(Arg.Any <User>());
            await _userRepositoryMock.Received(1).Save();

            Assert.Null(exception);
        }