public async Task LoginAsync_ShouldReturnJwtTokenResponse_WhenInputIsValid() { // Arrange var clientToLogin = new ClientLoginRequest { Login = "******", Password = "******" }; var client = new Client(); var jwtToken = new JwtTokenResponse { Token = "token", RefreshToken = "refreshToken" }; _clientRepository.FindByLoginAsync(Arg.Any <string>()).Returns(client); _passwordHasher.Validate(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()).Returns(true); _jwtBearer.CreateToken(client).Returns(jwtToken); _clientRepository.SaveAsync().Returns(1); // Act var token = await _sut.LoginAsync(clientToLogin); // Assert token.Should().NotBeNull(); token.Should().Be(jwtToken); }
public async Task <JwtTokenResponse> LoginAsync(ClientLoginRequest model) { var client = await _repository.FindByLoginAsync(model.Login); if (client == null) { return(null); } var loginResult = _passwordHasher.Validate(model.Password, client.Salt, client.Hash); if (!loginResult) { return(null); } return(await GenerateAndSaveTokenAsync(client)); }