From da9139b7bab95f6e5ba5f4bb2d99011c2d6db03a Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 23 Mar 2022 21:30:14 +0800 Subject: … MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BackEnd/Timeline.Tests/Helpers/TestDatabase.cs | 7 +++- .../Timeline.Tests/IntegratedTests/TokenTest.cs | 42 ++-------------------- BackEnd/Timeline.Tests/Services/ServiceTestBase.cs | 10 +++++- 3 files changed, 17 insertions(+), 42 deletions(-) (limited to 'BackEnd/Timeline.Tests') 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.Instance, context, new PasswordService(), new Clock()); + var mockUserTokenManager = new Mock(); + mockUserTokenManager.SetReturnsDefault(Task.CompletedTask); + + var userService = new UserService(NullLogger.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(); - 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(); - 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 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.Instance, Database, new PasswordService(), Clock); + UserTokenServiceMock = new(); + UserTokenServiceMock.SetReturnsDefault(Task.CompletedTask); + UserTokenService = UserTokenServiceMock.Object; + + UserService = new UserService(NullLogger.Instance, Database, new PasswordService(), UserTokenService, Clock); TimelineService = new TimelineService(NullLoggerFactory.Instance, Database, UserService, Clock); UserId = await UserService.GetUserIdByUsernameAsync("user"); -- cgit v1.2.3