aboutsummaryrefslogtreecommitdiff
path: root/Timeline.Tests
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-01-23 20:51:02 +0800
committercrupest <crupest@outlook.com>2020-01-23 20:51:02 +0800
commitc72996ff9854aededc4ecfab92ef5d42167edd86 (patch)
tree1e722a0618cdb0fe3f784a0c4100727a5b2b3ece /Timeline.Tests
parent4aadb05cd5718c7d16bf432c96e23ae4e7db4783 (diff)
downloadtimeline-c72996ff9854aededc4ecfab92ef5d42167edd86.tar.gz
timeline-c72996ff9854aededc4ecfab92ef5d42167edd86.tar.bz2
timeline-c72996ff9854aededc4ecfab92ef5d42167edd86.zip
...
Diffstat (limited to 'Timeline.Tests')
-rw-r--r--Timeline.Tests/Controllers/TokenControllerTest.cs35
-rw-r--r--Timeline.Tests/Controllers/UserControllerTest.cs21
-rw-r--r--Timeline.Tests/Helpers/MockUser.cs10
3 files changed, 47 insertions, 19 deletions
diff --git a/Timeline.Tests/Controllers/TokenControllerTest.cs b/Timeline.Tests/Controllers/TokenControllerTest.cs
index 740d8377..61fbe950 100644
--- a/Timeline.Tests/Controllers/TokenControllerTest.cs
+++ b/Timeline.Tests/Controllers/TokenControllerTest.cs
@@ -6,6 +6,7 @@ using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Timeline.Controllers;
+using Timeline.Models;
using Timeline.Models.Http;
using Timeline.Services;
using Timeline.Tests.Helpers;
@@ -15,7 +16,7 @@ namespace Timeline.Tests.Controllers
{
public class TokenControllerTest : IDisposable
{
- private readonly Mock<IUserService> _mockUserService = new Mock<IUserService>();
+ private readonly Mock<IUserTokenManager> _mockUserService = new Mock<IUserTokenManager>();
private readonly TestClock _mockClock = new TestClock();
@@ -38,12 +39,18 @@ namespace Timeline.Tests.Controllers
{
var mockCurrentTime = DateTime.Now;
_mockClock.MockCurrentTime = mockCurrentTime;
- var createResult = new CreateTokenResult
+ var mockCreateResult = new UserTokenCreateResult
{
Token = "mocktokenaaaaa",
- User = MockUser.User.Info
+ User = new UserInfo
+ {
+ Id = 1,
+ Username = MockUser.User.Username,
+ Administrator = MockUser.User.Administrator,
+ Version = 1
+ }
};
- _mockUserService.Setup(s => s.CreateToken("u", "p", expire == null ? null : (DateTime?)mockCurrentTime.AddDays(expire.Value))).ReturnsAsync(createResult);
+ _mockUserService.Setup(s => s.CreateToken("u", "p", expire == null ? null : (DateTime?)mockCurrentTime.AddDays(expire.Value))).ReturnsAsync(mockCreateResult);
var action = await _controller.Create(new CreateTokenRequest
{
Username = "u",
@@ -51,7 +58,11 @@ namespace Timeline.Tests.Controllers
Expire = expire
});
action.Result.Should().BeAssignableTo<OkObjectResult>()
- .Which.Value.Should().BeEquivalentTo(createResult);
+ .Which.Value.Should().BeEquivalentTo(new CreateTokenResponse
+ {
+ Token = mockCreateResult.Token,
+ User = MockUser.User.Info
+ });
}
[Fact]
@@ -88,7 +99,13 @@ namespace Timeline.Tests.Controllers
public async Task Verify_Ok()
{
const string token = "aaaaaaaaaaaaaa";
- _mockUserService.Setup(s => s.VerifyToken(token)).ReturnsAsync(MockUser.User.Info);
+ _mockUserService.Setup(s => s.VerifyToken(token)).ReturnsAsync(new UserInfo
+ {
+ Id = 1,
+ Username = MockUser.User.Username,
+ Administrator = MockUser.User.Administrator,
+ Version = 1
+ });
var action = await _controller.Verify(new VerifyTokenRequest { Token = token });
action.Result.Should().BeAssignableTo<OkObjectResult>()
.Which.Value.Should().BeAssignableTo<VerifyTokenResponse>()
@@ -97,9 +114,9 @@ namespace Timeline.Tests.Controllers
public static IEnumerable<object[]> Verify_BadRequest_Data()
{
- yield return new object[] { new JwtUserTokenBadFormatException(JwtUserTokenBadFormatException.ErrorCodes.Expired), ErrorCodes.TokenController.Verify_TimeExpired };
- yield return new object[] { new JwtUserTokenBadFormatException(JwtUserTokenBadFormatException.ErrorCodes.IdClaimBadFormat), ErrorCodes.TokenController.Verify_BadFormat };
- yield return new object[] { new JwtUserTokenBadFormatException(JwtUserTokenBadFormatException.ErrorCodes.OldVersion), ErrorCodes.TokenController.Verify_OldVersion };
+ yield return new object[] { new UserTokenTimeExpireException(), ErrorCodes.TokenController.Verify_TimeExpired };
+ yield return new object[] { new UserTokenBadVersionException(), ErrorCodes.TokenController.Verify_OldVersion };
+ yield return new object[] { new UserTokenBadFormatException(), ErrorCodes.TokenController.Verify_BadFormat };
yield return new object[] { new UserNotExistException(), ErrorCodes.TokenController.Verify_UserNotExist };
}
diff --git a/Timeline.Tests/Controllers/UserControllerTest.cs b/Timeline.Tests/Controllers/UserControllerTest.cs
index 262dbe11..a1035675 100644
--- a/Timeline.Tests/Controllers/UserControllerTest.cs
+++ b/Timeline.Tests/Controllers/UserControllerTest.cs
@@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging.Abstractions;
using Moq;
using System;
+using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
@@ -35,18 +36,28 @@ namespace Timeline.Tests.Controllers
[Fact]
public async Task GetList_Success()
{
- var array = MockUser.UserInfoList.ToArray();
- _mockUserService.Setup(s => s.ListUsers()).ReturnsAsync(array);
+ var mockUserList = new UserInfo[] {
+ new UserInfo { Id = 1, Username = "aaa", Administrator = true, Version = 1 },
+ new UserInfo { Id = 2, Username = "bbb", Administrator = false, Version = 1 }
+ };
+ _mockUserService.Setup(s => s.ListUsers()).ReturnsAsync(mockUserList);
var action = await _controller.List();
action.Result.Should().BeAssignableTo<OkObjectResult>()
- .Which.Value.Should().BeEquivalentTo(array);
+ .Which.Value.Should().BeEquivalentTo(
+ mockUserList.Select(u => new User { Username = u.Username, Administrator = u.Administrator }).ToArray());
}
[Fact]
public async Task Get_Success()
{
const string username = "aaa";
- _mockUserService.Setup(s => s.GetUserByUsername(username)).ReturnsAsync(MockUser.User.Info);
+ _mockUserService.Setup(s => s.GetUserByUsername(username)).ReturnsAsync(new UserInfo
+ {
+ Id = 1,
+ Username = MockUser.User.Username,
+ Administrator = MockUser.User.Administrator,
+ Version = 1
+ });
var action = await _controller.Get(username);
action.Result.Should().BeAssignableTo<OkObjectResult>()
.Which.Value.Should().BeEquivalentTo(MockUser.User.Info);
@@ -56,7 +67,7 @@ namespace Timeline.Tests.Controllers
public async Task Get_NotFound()
{
const string username = "aaa";
- _mockUserService.Setup(s => s.GetUserByUsername(username)).Returns(Task.FromResult<User>(null));
+ _mockUserService.Setup(s => s.GetUserByUsername(username)).ThrowsAsync(new UserNotExistException());
var action = await _controller.Get(username);
action.Result.Should().BeAssignableTo<NotFoundObjectResult>()
.Which.Value.Should().BeAssignableTo<CommonResponse>()
diff --git a/Timeline.Tests/Helpers/MockUser.cs b/Timeline.Tests/Helpers/MockUser.cs
index 8d738525..49576842 100644
--- a/Timeline.Tests/Helpers/MockUser.cs
+++ b/Timeline.Tests/Helpers/MockUser.cs
@@ -1,17 +1,17 @@
using System.Collections.Generic;
-using Timeline.Models;
-
+using Timeline.Models.Http;
+
namespace Timeline.Tests.Helpers
{
public class MockUser
{
public MockUser(string username, string password, bool administrator)
{
- Info = new UserInfo(username, administrator);
+ Info = new User { Username = username, Administrator = administrator };
Password = password;
}
- public UserInfo Info { get; set; }
+ public User Info { get; set; }
public string Username => Info.Username;
public string Password { get; set; }
public bool Administrator => Info.Administrator;
@@ -19,6 +19,6 @@ namespace Timeline.Tests.Helpers
public static MockUser User { get; } = new MockUser("user", "userpassword", false);
public static MockUser Admin { get; } = new MockUser("admin", "adminpassword", true);
- public static IReadOnlyList<UserInfo> UserInfoList { get; } = new List<UserInfo> { User.Info, Admin.Info };
+ public static IReadOnlyList<User> UserInfoList { get; } = new List<User> { User.Info, Admin.Info };
}
}