Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
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);
        }
Пример #4
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
                }));
            }
        }
Пример #5
0
        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);
        }