public void ShouldHaveValidationErrorWithInvalidLengthCode(string code)
        {
            ConfirmUserRequestModel requestModel = new ConfirmUserRequestModel()
            {
                Code = code
            };

            _validator.ShouldHaveValidationErrorFor(p => p.Code, requestModel).WithErrorMessage("code must be 8 characters.");
        }
        public void ShouldHaveValidationErrorWithEmptyCode(string code)
        {
            ConfirmUserRequestModel requestModel = new ConfirmUserRequestModel()
            {
                Code = code
            };

            _validator.ShouldHaveValidationErrorFor(p => p.Code, requestModel).WithErrorMessage("code cannot be empty.");
        }
示例#3
0
        public async Task <IActionResult> Confirmation(ConfirmUserRequestModel model)
        {
            try
            {
                await _userService.ConfirmUser(model);

                return(Ok());
            }
            catch (Exception exception)
            {
                return(this.HandleExceptionToUserAndLogIfExceptionIsUnexpected(exception));
            }
        }
示例#4
0
        public async Task ShouldThrowResourceNotFoundOnTryConfirmNotExistsUser()
        {
            ConfirmUserRequestModel model = new ConfirmUserRequestModel()
            {
                Code = "AAAAAAAA"
            };
            User notExistsUser = null;

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

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

            Assert.IsType <ResourceNotFoundException>(exception);
            Assert.Contains("user not found.", exception.Message);
        }
示例#5
0
        public async Task ShouldConfirmUser()
        {
            ConfirmUserRequestModel model = new ConfirmUserRequestModel()
            {
                Code = "AAAAAAAA"
            };
            User alreadyExistsUser = new User();

            _userRepositoryMock.GetByConfirmationCode(Arg.Any <string>()).Returns(alreadyExistsUser);

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

            Assert.Null(exception);
            _userRepositoryMock.Received(1).Update(Arg.Any <User>());
            await _userRepositoryMock.Received(1).Save();
        }
示例#6
0
        public async Task ConfirmUser(ConfirmUserRequestModel model)
        {
            await new ConfirmUserValidator().ValidateRequestModelAndThrow(model);

            User user = await _userRepository.GetByConfirmationCode(model.Code);

            if (user == null)
            {
                throw new ResourceNotFoundException("user not found.");
            }

            user.Confirm();

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