public async Task Should_RefreshToken() { var request = FakeRequest(); var refreshToken = new RefreshTokenFake().Builder.Generate(); var uowGeneralMock = new Mock <IUowGeneral>(); uowGeneralMock.Setup(x => x.RefreshTokenRepository.FindByToken(request.Token)) .ReturnsAsync(refreshToken); var accessTokenService = new Mock <IAccessTokenService>(); var refreshTokenService = new RefreshTokenService(uowGeneralMock.Object); var handler = new RefreshTokenCommandHandler( uowGeneralMock.Object, accessTokenService.Object, refreshTokenService); var response = await handler.Handle(request, default); Assert.NotNull(response); accessTokenService.Verify(x => x.GetAccessToken(refreshToken.User), Times.Once); uowGeneralMock.Verify(x => x.RefreshTokenRepository.Create(It.IsNotIn(refreshToken)), Times.Once); uowGeneralMock.Verify(x => x.RefreshTokenRepository.Delete(refreshToken), Times.Once); uowGeneralMock.Verify(x => x.SaveChanges(), Times.Once); }
public async Task Should_RefreshToken() { var client = _factory.CreateClient(); var user = await _factory.Util.GetUser(); var refreshToken = new RefreshTokenFake(user).Builder.Generate(); await _factory.Util.SaveEntity(refreshToken); var request = new RefreshTokenCommand() { Token = refreshToken.Token }; var json = _factory.Util.AsJsonContent(request); var response = await client.PostAsync("api/refresh_token", json); response.EnsureSuccessStatusCode(); var responseMessage = await response.Content.ReadAsStringAsync(); var refreshTokenResponse = _factory.Util.Deserialize <RefreshTokenResponse>(responseMessage); Assert.NotNull(refreshTokenResponse); Assert.NotNull(refreshTokenResponse.AccessToken); Assert.NotEmpty(refreshTokenResponse.AccessToken.Token); Assert.NotNull(refreshTokenResponse.RefreshToken); Assert.NotEmpty(refreshTokenResponse.AccessToken.Token); }
public async Task ShouldThrow_InvalidRefreshTokenException_OnExpiredRefreshToken() { var request = FakeRequest(); var refreshTokenFakeBuilder = new RefreshTokenFake().Builder; refreshTokenFakeBuilder.RuleFor(x => x.ExpiresAt, f => f.Date.Past()); var refreshToken = refreshTokenFakeBuilder.Generate(); var uowGeneralMock = new Mock <IUowGeneral>(); uowGeneralMock.Setup(x => x.RefreshTokenRepository.FindByToken(request.Token)) .ReturnsAsync(refreshToken); var accessTokenService = new Mock <IAccessTokenService>(); var refreshTokenService = new RefreshTokenService(uowGeneralMock.Object); var handler = new RefreshTokenCommandHandler( uowGeneralMock.Object, accessTokenService.Object, refreshTokenService); await Assert.ThrowsAsync <InvalidRefreshTokenException>(() => handler.Handle(request, default)); }