From 1a653fca9e4e3371dd65782c987a736e2259d66a Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 24 Jan 2020 23:15:44 +0800 Subject: Finish UserTokenManagerTest. --- Timeline.Tests/Services/UserTokenManagerTest.cs | 81 +++++++++++++++++++++++++ 1 file changed, 81 insertions(+) (limited to 'Timeline.Tests/Services/UserTokenManagerTest.cs') diff --git a/Timeline.Tests/Services/UserTokenManagerTest.cs b/Timeline.Tests/Services/UserTokenManagerTest.cs index a8ace778..19122d31 100644 --- a/Timeline.Tests/Services/UserTokenManagerTest.cs +++ b/Timeline.Tests/Services/UserTokenManagerTest.cs @@ -80,5 +80,86 @@ namespace Timeline.Tests.Services User = mockUserInfo }); } + + [Fact] + public void VerifyToken_NullArgument() + { + _service.Invoking(s => s.VerifyToken(null)).Should().ThrowAsync(); + } + + [Fact] + public async Task VerifyToken_BadFormat() + { + const string mockToken = "mocktokenaaaaaa"; + _mockUserTokenService.Setup(s => s.VerifyToken(mockToken)).Throws(new UserTokenBadFormatException()); + + await _service.Awaiting(s => s.VerifyToken(mockToken)).Should().ThrowAsync(); + } + + [Fact] + public async Task VerifyToken_TimeExpire() + { + const string mockToken = "mocktokenaaaaaa"; + var mockTime = DateTime.Now; + _mockClock.MockCurrentTime = mockTime; + var mockTokenInfo = new UserTokenInfo + { + Id = 1, + Version = 1, + ExpireAt = mockTime.AddDays(-1) + }; + _mockUserTokenService.Setup(s => s.VerifyToken(mockToken)).Returns(mockTokenInfo); + + await _service.Awaiting(s => s.VerifyToken(mockToken)).Should().ThrowAsync(); + } + + [Fact] + public async Task VerifyToken_BadVersion() + { + const string mockToken = "mocktokenaaaaaa"; + var mockTime = DateTime.Now; + _mockClock.MockCurrentTime = mockTime; + var mockTokenInfo = new UserTokenInfo + { + Id = 1, + Version = 1, + ExpireAt = mockTime.AddDays(1) + }; + _mockUserTokenService.Setup(s => s.VerifyToken(mockToken)).Returns(mockTokenInfo); + _mockUserService.Setup(s => s.GetUserById(1)).ReturnsAsync(new UserInfo + { + Id = 1, + Username = "aaa", + Administrator = false, + Version = 2 + }); + + await _service.Awaiting(s => s.VerifyToken(mockToken)).Should().ThrowAsync(); + } + + [Fact] + public async Task VerifyToken_Success() + { + const string mockToken = "mocktokenaaaaaa"; + var mockTime = DateTime.Now; + _mockClock.MockCurrentTime = mockTime; + var mockTokenInfo = new UserTokenInfo + { + Id = 1, + Version = 1, + ExpireAt = mockTime.AddDays(1) + }; + var mockUserInfo = new UserInfo + { + Id = 1, + Username = "aaa", + Administrator = false, + Version = 1 + }; + _mockUserTokenService.Setup(s => s.VerifyToken(mockToken)).Returns(mockTokenInfo); + _mockUserService.Setup(s => s.GetUserById(1)).ReturnsAsync(mockUserInfo); + + (await _service.VerifyToken(mockToken)).Should().BeEquivalentTo(mockUserInfo); + } } } -- cgit v1.2.3