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."); }
public async Task <IActionResult> Confirmation(ConfirmUserRequestModel model) { try { await _userService.ConfirmUser(model); return(Ok()); } catch (Exception exception) { return(this.HandleExceptionToUserAndLogIfExceptionIsUnexpected(exception)); } }
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); }
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(); }
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(); }