Example #1
0
        public async Task <IActionResult> SignIn(UserSignInResource userSignInResource)
        {
            var user = await _authService.FindUserByEmail(userSignInResource.Email);

            if (user == null)
            {
                return(NotFound("User not found"));
            }

            var isCorrect = await _authService.IsUserPasswordCorrect(user, userSignInResource.Password);

            if (!isCorrect)
            {
                return(BadRequest("Email or password is incorrect"));
            }

            var roles = await _authService.GetUserRoles(user);

            var jwtString = _authService.GenerateJwt(user, roles);

            var userResource = _mapper.Map <User, UserResource>(user);

            var authResource = new AuthResource()
            {
                JwtString = jwtString,
                User      = userResource
            };

            return(Ok(authResource));
        }
Example #2
0
        public async Task SignIn_ReturnNotFoundResult_WhenUserIsNotFound()
        {
            //Arrange
            var userSignInResource = new UserSignInResource();
            var expectedValue      = "User not found";

            _mockService.Setup(service => service.FindUserByEmail(It.IsAny <string>()))
            .ReturnsAsync((User)null);
            var controller = new AuthController(_mapper, _mockService.Object);

            //Act
            var actionResult = await controller.SignIn(userSignInResource);

            var objectResult = actionResult as NotFoundObjectResult;
            var value        = objectResult.Value;

            //Assert
            Assert.IsType <NotFoundObjectResult>(actionResult);
            Assert.Equal(expectedValue, value);
        }
Example #3
0
        public async Task SignIn_ReturnBadRequestObjectResult_WhenPasswordIsIncorrect()
        {
            //Arrange
            var userSignInResource = new UserSignInResource();
            var expectedValue      = "Email or password is incorrect";

            _mockService.Setup(service => service.FindUserByEmail(It.IsAny <string>()))
            .ReturnsAsync(new User());
            _mockService.Setup(service => service.IsUserPasswordCorrect(It.IsAny <User>(), It.IsAny <string>()))
            .ReturnsAsync(false);
            var controller = new AuthController(_mapper, _mockService.Object);

            //Act
            var actionResult = await controller.SignIn(userSignInResource);

            var objectResult = actionResult as BadRequestObjectResult;
            var value        = objectResult.Value;

            //Assert
            Assert.IsType <BadRequestObjectResult>(actionResult);
            Assert.Equal(expectedValue, value);
        }
Example #4
0
        public async Task SignIn_ReturnOkObjectResult_WhenSignInIsSuccess()
        {
            //Arrange
            var userSignInResource = new UserSignInResource();
            var jwtString          = "MockJwt";
            var user = new User()
            {
                Id        = 1,
                FirstName = "User1"
            };
            var userResource = _mapper.Map <User, UserResource>(user);
            var authResource = new AuthResource()
            {
                JwtString = jwtString,
                User      = userResource
            };

            _mockService.Setup(service => service.FindUserByEmail(It.IsAny <string>()))
            .ReturnsAsync(user);
            _mockService.Setup(service => service.IsUserPasswordCorrect(It.IsAny <User>(), It.IsAny <string>()))
            .ReturnsAsync(true);
            _mockService.Setup(service => service.GetUserRoles(It.IsAny <User>()))
            .ReturnsAsync(new List <string>());
            _mockService.Setup(service => service.GenerateJwt(It.IsAny <User>(), It.IsAny <List <string> >()))
            .Returns(jwtString);
            var controller = new AuthController(_mapper, _mockService.Object);

            //Act
            var actionResult = await controller.SignIn(userSignInResource);

            var objectResult = actionResult as OkObjectResult;
            var value        = objectResult.Value;

            //Assert
            Assert.IsType <OkObjectResult>(actionResult);
            Assert.Equal(serializeObject(authResource), serializeObject(value));
        }
Example #5
0
        public IActionResult SignIn(UserSignInResource resource)
        {
            var temp = _authService.SignInAsync(resource.Email, resource.Password).Result;

            return(Ok(temp));
        }