public async void LoginNoFound() { IDb _db = new Db(_settings); IUserRepository _userRepository = new UserRepository(_db); IUserService _userService = new UserService(_userRepository); UsersController _usersController = new UsersController(_userService, _settings); CredentialsRequestDto request = new CredentialsRequestDto() { Username = "******", Password = "******" };; var expected = 404; // Act var result = await _usersController.Post(request); var okResult = Assert.IsType <NotFoundObjectResult>(result); Assert.NotNull(result); Assert.Equal(okResult.StatusCode, expected); }
public async void ValidateLoginNotFound() { CredentialsRequestDto request = new CredentialsRequestDto() { Username = "******", Password = "******" };; var expected = new ErrorResponseDto() { Code = "U404" }; _userService.Setup(x => x.ValidateUser(It.IsAny <string>(), It.IsAny <string>())) .Callback(() => { throw new UserNotFoundException($"User {request.Username} not found"); }); // Act var result = await _usersController.Post(request); // Assert var okResult = Assert.IsType <NotFoundObjectResult>(result); Assert.Equal(expected.Code, (okResult.Value as ErrorResponseDto).Code); }
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 })); } }
public async void LoginOk() { IDb _db = new Db(_settings); IUserRepository _userRepository = new UserRepository(_db); IUserService _userService = new UserService(_userRepository); UsersController _usersController = new UsersController(_userService, _settings); CredentialsRequestDto request = new CredentialsRequestDto() { Username = "******", Password = "******" };; // Act var result = await _usersController.Post(request); var okResult = Assert.IsType <OkObjectResult>(result); Assert.NotNull(result); Assert.NotEmpty((okResult.Value as CredentialsResponseDto).Token); }