public async Task ShouldInvalidUserFieldsTest() { _mockRepository.Setup(x => x.GetByEmail(It.IsAny <string>())).Returns(Task.FromResult <User>(null)); var singInUserRequest = new SingInUserRequest() { Email = "*****@*****.**", Password = "******" }; var command = new UserCommandHandler(_mockRepository.Object, _mockMapper, _mockNotificationContext); var result = await command.Handler(singInUserRequest); Assert.IsFalse(result.Success); Assert.IsTrue(result.Error); Assert.AreEqual(404, result.StatusCode); Assert.AreEqual(Messages.INVALID_EMAIL_OR_PASSWORD, result.Message); }
public async Task ShouldRequireFieldsTest() { _mockRepository.Setup(x => x.GetByEmail(It.IsAny <string>())).Returns(Task.FromResult <User>(null)); var singInUserRequest = new SingInUserRequest() { Email = "", Password = "******" }; var command = new UserCommandHandler(_mockRepository.Object, _mockMapper, _mockNotificationContext); var result = await command.Handler(singInUserRequest); Assert.IsFalse(result.Success); Assert.IsTrue(result.Error); Assert.AreEqual(400, result.StatusCode); Assert.AreEqual(Messages.MISSING_FIELDS, result.Message); }
public async Task <CommandResponse> Handler(SingInUserRequest singIn) { if (string.IsNullOrEmpty(singIn?.Email) || string.IsNullOrWhiteSpace(singIn?.Password)) { _notificationContext.AddNotification("SingIn", Messages.MISSING_FIELDS); return(BadRequest(null, Messages.MISSING_FIELDS)); } var user = await _userRepository.GetByEmail(singIn.Email); if (user == null || !user.isValidPass(singIn.Password)) { _notificationContext.AddNotification("SingIn", Messages.INVALID_EMAIL_OR_PASSWORD); return(NotFound(null, Messages.INVALID_EMAIL_OR_PASSWORD)); } user.UpdateLastLogin(); _ = _userRepository.RegisterAccess(user); return(Ok(_mapper.Map <UserResponse>(user), Messages.SING_IN)); }
public async Task <IActionResult> SignIn([FromServices] IUserCommandHandler userCommandHandler, [FromBody] SingInUserRequest singIn) { if (ModelState.IsValid) { var user = await userCommandHandler.Handler(singIn); if (user.Error) { return(Response(user)); } var response = TokenService.GereneteToken((UserResponse)user.Data, _appSettings); return(Response(new CommandResponse(user.StatusCode, user.Message, response))); } return(BadRequest()); }