public async void ValidateLoginOk() { CredentialsRequestDto request = new CredentialsRequestDto() { Username = "******", Password = "******" };; var userExpected = new User() { UserId = 1, Username = "******", Password = "******" }; var auth = _settings.Value.AuthSettings; var expected = new CredentialsResponseDto() { Token = userExpected.CreateToken(auth.Key, auth.ValidAudience, auth.ValidIssuer) }; _userService.Setup(x => x.ValidateUser(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(userExpected); // Act var result = await _usersController.Post(request); // Assert var okResult = Assert.IsType <OkObjectResult>(result); Assert.Equal(expected.Token, (okResult.Value as CredentialsResponseDto).Token); }
public async Task <IActionResult> Post([FromBody] CredentialsRequestDto value) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = await _userService.ValidateUser(value.Username, value.Password); var auth = _settings.Value.AuthSettings; var response = new CredentialsResponseDto() { Token = user.CreateToken(auth.Key, auth.ValidAudience, auth.ValidIssuer) }; return(Ok(response)); } catch (UserNotFoundException e) { return(NotFound(new ErrorResponseDto() { Code = "U404", Message = e.Message })); } catch (UserUnAuthException e) { return(Unauthorized(new ErrorResponseDto() { Code = "U401", Message = e.Message })); } catch (Exception e) { return(StatusCode(500, new ErrorResponseDto() { Code = "U500", Message = e.Message, Exp = e })); } }