public async Task Should_ReturnFalse_WhenRequiredInfo_IsNotProvided() { // Arrange var forgotPasswordDto = new ForgotPasswordDto { Email = "" }; var passwordValidator = new ForgotPasswordValidator(); // Act var validatorResult = await passwordValidator.ValidateAsync(forgotPasswordDto); // Assert validatorResult.IsValid.ShouldBeFalse(); }
public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordDto forgotPasswordDto, [FromServices] IForgotPasswordService service) { var forgotPasswordValidator = new ForgotPasswordValidator(); var validatorResult = await forgotPasswordValidator.ValidateAsync(forgotPasswordDto); if (validatorResult.IsValid) { await service.RequestPasswordReset(forgotPasswordDto); if (!service.Status.HasErrors) { return(Ok()); } return(BadRequest(service.Status.Errors)); } var validationErrors = validatorResult.Errors.Select(error => new ValidationResult(error.ErrorMessage)) .ToImmutableList(); return(BadRequest(validationErrors)); }