public async Task Handler_LoginWithRefreshTokenCommand_Success() { var command = new LoginWithRefreshTokenQuery { RefreshToken = Guid.NewGuid().ToString() }; _userRepository.Setup(x => x.GetByRefreshToken(It.IsAny <string>())) .ReturnsAsync(DataHelper.GetUser("test")); _userRepository.Setup(x => x.GetClaims(It.IsAny <int>())) .Returns(new List <OperationClaim> { new OperationClaim { } }); _userRepository.Setup(x => x.Update(It.IsAny <User>())).Returns(new User()); _tokenHelper.Setup(x => x.CreateToken <AccessToken>(It.IsAny <User>())).Returns(new AccessToken()); var handler = new LoginWithRefreshTokenQueryHandler(_userRepository.Object, _tokenHelper.Object, _cacheManager.Object); var x = await handler.Handle(command, new CancellationToken()); _userRepository.Verify(x => x.GetByRefreshToken(It.IsAny <string>()), Times.Once); _userRepository.Verify(x => x.GetClaims(It.IsAny <int>()), Times.Once); _userRepository.Verify(x => x.Update(It.IsAny <User>()), Times.Once); _userRepository.Verify(x => x.SaveChangesAsync(), Times.Once); _tokenHelper.Verify(x => x.CreateToken <AccessToken>(It.IsAny <User>()), Times.Once); x.Success.Should().BeTrue(); x.Message.Should().Be(Messages.SuccessfulLogin); }
public async Task User_LoginWithRefreshTokenCommand_UserNotFound() { var command = new LoginWithRefreshTokenQuery { RefreshToken = Guid.NewGuid().ToString() }; User rt = null; _userRepository.Setup(x => x.GetByRefreshToken(It.IsAny <string>())).ReturnsAsync(rt); var handler = new LoginWithRefreshTokenQueryHandler(_userRepository.Object, _tokenHelper.Object, _cacheManager.Object); var x = await handler.Handle(command, new CancellationToken()); _userRepository.Verify(x => x.GetByRefreshToken(It.IsAny <string>()), Times.Once); _userRepository.Verify(x => x.Update(It.IsAny <User>()), Times.Never); _userRepository.Verify(x => x.SaveChangesAsync(), Times.Never); _tokenHelper.Verify(x => x.CreateToken <AccessToken>(It.IsAny <User>()), Times.Never); x.Success.Should().BeFalse(); x.Message.Should().Be(Messages.UserNotFound); }
public async Task <IActionResult> LoginWithRefreshToken([FromBody] LoginWithRefreshTokenQuery command) { var result = await Mediator.Send(command); return(result.Success ? Ok(result) : BadRequest(result)); }