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)); }
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); }
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); }
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)); }
public IActionResult SignIn(UserSignInResource resource) { var temp = _authService.SignInAsync(resource.Email, resource.Password).Result; return(Ok(temp)); }