public async Task <IActionResult> LoginAsync(UserLoginViewModel loginViewModel) { var validator = new UserLoginViewModelValidator(_accountService); ValidationResult result = validator.Validate(loginViewModel); if (!result.IsValid) { return(BadRequest(new ErrorResponseFormat(result.Errors.First().ErrorMessage))); } if (await _accountService.CheckUserHasTokenAsync(loginViewModel.Email)) { return(BadRequest(new ErrorResponseFormat(Constants.Errors.TOKEN_ALREADY_SENT))); } UserLoginModel authorizationModel = _mapper.Map <UserLoginModel>(loginViewModel); UserModel user = await _accountService.AuthenticateAsync(authorizationModel); if (user == null) { return(BadRequest(new ErrorResponseFormat(Constants.Errors.INVALID_PASSWORD))); } string tokenString = _jwtService.GetJWTToken(user, new ClaimsService(_jwtSettings)); return(Ok(new { token = tokenString })); }
public void TestingWithAllFieldsEmpty() { var viewModel = new UserLoginViewModel(); var validator = new UserLoginViewModelValidator(); var results = validator.Validate(viewModel); results.Errors.Count.Should().Be(2); results.Errors[0].ErrorMessage.Should().Be("'Login' deve ser preenchido."); results.Errors[1].ErrorMessage.Should().Be("'Senha' deve ser preenchido."); }
public void Under18CantAccess_FluentValidator() { //Arrange //set up fluent validation validator = new UserLoginViewModelValidator(); //Act var response = validator.ShouldHaveValidationErrorFor(login => login.Dob, DateTime.Now.AddYears(-17)); //Assert Assert.True(response.Any() == true); Assert.True(response.First().ErrorMessage == AppConstants.Under18LoginAttemptError); }