Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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
                }));
            }
        }