diff options
Diffstat (limited to 'BackEnd/Timeline.Tests')
-rw-r--r-- | BackEnd/Timeline.Tests/Helpers/TestDatabase.cs | 7 | ||||
-rw-r--r-- | BackEnd/Timeline.Tests/IntegratedTests/TokenTest.cs | 42 | ||||
-rw-r--r-- | BackEnd/Timeline.Tests/Services/ServiceTestBase.cs | 10 |
3 files changed, 17 insertions, 42 deletions
diff --git a/BackEnd/Timeline.Tests/Helpers/TestDatabase.cs b/BackEnd/Timeline.Tests/Helpers/TestDatabase.cs index 9bd690a2..5752b8cd 100644 --- a/BackEnd/Timeline.Tests/Helpers/TestDatabase.cs +++ b/BackEnd/Timeline.Tests/Helpers/TestDatabase.cs @@ -1,9 +1,11 @@ using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging.Abstractions;
+using Moq; using System.Threading.Tasks;
using Timeline.Entities;
using Timeline.Services;
+using Timeline.Services.Token; using Timeline.Services.User;
using Xunit;
using Xunit.Abstractions;
@@ -24,7 +26,10 @@ namespace Timeline.Tests.Helpers using var context = CreateContext();
await context.Database.MigrateAsync();
- var userService = new UserService(NullLogger<UserService>.Instance, context, new PasswordService(), new Clock());
+ var mockUserTokenManager = new Mock<IUserTokenService>();
+ mockUserTokenManager.SetReturnsDefault(Task.CompletedTask);
+
+ var userService = new UserService(NullLogger<UserService>.Instance, context, new PasswordService(), mockUserTokenManager.Object, new Clock());
await userService.ModifyUserAsync(
await userService.GetUserIdByUsernameAsync("administrator"),
diff --git a/BackEnd/Timeline.Tests/IntegratedTests/TokenTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/TokenTest.cs index 68681b61..555ab4da 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests/TokenTest.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests/TokenTest.cs @@ -1,10 +1,8 @@ using FluentAssertions;
-using Microsoft.Extensions.DependencyInjection;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
using Timeline.Models.Http;
-using Timeline.Services.User;
using Xunit;
using Xunit.Abstractions;
@@ -80,48 +78,12 @@ namespace Timeline.Tests.IntegratedTests }
[Fact]
- public async Task VerifyToken_BadFormat()
+ public async Task VerifyToken_Invalid()
{
using var client = await CreateDefaultClient();
await client.TestPostAssertErrorAsync(VerifyTokenUrl,
new HttpVerifyTokenRequest { Token = "bad token hahaha" },
- errorCode: ErrorCodes.TokenController.VerifyBadFormat);
- }
-
- [Fact]
- public async Task VerifyToken_OldVersion()
- {
- using var client = await CreateDefaultClient();
- var token = (await CreateUserTokenAsync(client, "user1", "user1pw")).Token;
-
- using (var scope = TestApp.Host.Services.CreateScope()) // UserService is scoped.
- {
- // create a user for test
- var userService = scope.ServiceProvider.GetRequiredService<IUserService>();
- var id = await userService.GetUserIdByUsernameAsync("user1");
- await userService.ModifyUserAsync(id, new ModifyUserParams { Password = "user1pw" });
- }
-
- await client.TestPostAssertErrorAsync(VerifyTokenUrl,
- new HttpVerifyTokenRequest { Token = token },
- errorCode: ErrorCodes.TokenController.VerifyOldVersion);
- }
-
- [Fact]
- public async Task VerifyToken_UserNotExist()
- {
- using var client = await CreateDefaultClient();
- var token = (await CreateUserTokenAsync(client, "user1", "user1pw")).Token;
-
- using (var scope = TestApp.Host.Services.CreateScope()) // UserDeleteService is scoped.
- {
- var userService = scope.ServiceProvider.GetRequiredService<IUserDeleteService>();
- await userService.DeleteUserAsync("user1");
- }
-
- await client.TestPostAssertErrorAsync(VerifyTokenUrl,
- new HttpVerifyTokenRequest { Token = token },
- errorCode: ErrorCodes.TokenController.VerifyUserNotExist);
+ errorCode: ErrorCodes.TokenController.VerifyInvalid);
}
//[Fact]
diff --git a/BackEnd/Timeline.Tests/Services/ServiceTestBase.cs b/BackEnd/Timeline.Tests/Services/ServiceTestBase.cs index 7153e99b..fea31d0a 100644 --- a/BackEnd/Timeline.Tests/Services/ServiceTestBase.cs +++ b/BackEnd/Timeline.Tests/Services/ServiceTestBase.cs @@ -1,7 +1,9 @@ using Microsoft.Extensions.Logging.Abstractions;
+using Moq; using System.Threading.Tasks;
using Timeline.Entities;
using Timeline.Services.Timeline;
+using Timeline.Services.Token; using Timeline.Services.User;
using Timeline.Tests.Helpers;
using Xunit;
@@ -19,6 +21,8 @@ namespace Timeline.Tests.Services protected TestClock Clock { get; } = new TestClock();
protected UserService UserService { get; private set; } = default!;
protected TimelineService TimelineService { get; private set; } = default!;
+ protected Mock<IUserTokenService> UserTokenServiceMock { get; private set; } = default!;
+ protected IUserTokenService UserTokenService { get; private set; } = default!;
protected long UserId { get; private set; }
protected long AdminId { get; private set; }
@@ -34,7 +38,11 @@ namespace Timeline.Tests.Services await TestDatabase.InitializeAsync();
Database = TestDatabase.CreateContext(_testOutputHelper);
- UserService = new UserService(NullLogger<UserService>.Instance, Database, new PasswordService(), Clock);
+ UserTokenServiceMock = new();
+ UserTokenServiceMock.SetReturnsDefault(Task.CompletedTask);
+ UserTokenService = UserTokenServiceMock.Object;
+
+ UserService = new UserService(NullLogger<UserService>.Instance, Database, new PasswordService(), UserTokenService, Clock);
TimelineService = new TimelineService(NullLoggerFactory.Instance, Database, UserService, Clock);
UserId = await UserService.GetUserIdByUsernameAsync("user");
|