diff options
Diffstat (limited to 'Timeline.Tests')
-rw-r--r-- | Timeline.Tests/Controllers/TokenControllerTest.cs | 35 | ||||
-rw-r--r-- | Timeline.Tests/Controllers/UserControllerTest.cs | 21 | ||||
-rw-r--r-- | Timeline.Tests/Helpers/MockUser.cs | 10 |
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 }; } } |