From 1dfafd9400c158576f9ede8f3012356746cb5ae0 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 12 Nov 2020 18:31:41 +0800 Subject: feat: Add user permission service. TODO: Add unit tests. --- .../Timeline.Tests/Services/DatabaseBasedTest.cs | 47 ++++++++++++++++++++++ .../Timeline.Tests/Services/TimelineServiceTest.cs | 25 +++--------- .../Timeline.Tests/Services/UserPermissionTest.cs | 28 +++++++++++++ 3 files changed, 81 insertions(+), 19 deletions(-) create mode 100644 BackEnd/Timeline.Tests/Services/DatabaseBasedTest.cs create mode 100644 BackEnd/Timeline.Tests/Services/UserPermissionTest.cs (limited to 'BackEnd/Timeline.Tests/Services') diff --git a/BackEnd/Timeline.Tests/Services/DatabaseBasedTest.cs b/BackEnd/Timeline.Tests/Services/DatabaseBasedTest.cs new file mode 100644 index 00000000..838787e9 --- /dev/null +++ b/BackEnd/Timeline.Tests/Services/DatabaseBasedTest.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Timeline.Entities; +using Timeline.Tests.Helpers; +using Xunit; + +namespace Timeline.Tests.Services +{ + public abstract class DatabaseBasedTest : IAsyncLifetime + { + protected TestDatabase TestDatabase { get; } = new TestDatabase(); + protected DatabaseContext Database { get; private set; } + + public async Task InitializeAsync() + { + await TestDatabase.InitializeAsync(); + Database = TestDatabase.CreateContext(); + await OnDatabaseCreatedAsync(); + OnDatabaseCreated(); + } + + public async Task DisposeAsync() + { + BeforeDatabaseDestroy(); + await BeforeDatabaseDestroyAsync(); + await Database.DisposeAsync(); + await TestDatabase.DisposeAsync(); + } + + + protected virtual void OnDatabaseCreated() { } + protected virtual void BeforeDatabaseDestroy() { } + + + protected virtual Task OnDatabaseCreatedAsync() + { + return Task.CompletedTask; + } + + protected virtual Task BeforeDatabaseDestroyAsync() + { + return Task.CompletedTask; + } + } +} diff --git a/BackEnd/Timeline.Tests/Services/TimelineServiceTest.cs b/BackEnd/Timeline.Tests/Services/TimelineServiceTest.cs index 5a774b78..19d2781a 100644 --- a/BackEnd/Timeline.Tests/Services/TimelineServiceTest.cs +++ b/BackEnd/Timeline.Tests/Services/TimelineServiceTest.cs @@ -4,7 +4,6 @@ using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using Timeline.Entities; using Timeline.Models; using Timeline.Services; using Timeline.Services.Exceptions; @@ -13,12 +12,8 @@ using Xunit; namespace Timeline.Tests.Services { - public class TimelineServiceTest : IAsyncLifetime, IDisposable + public class TimelineServiceTest : DatabaseBasedTest, IDisposable { - private readonly TestDatabase _testDatabase = new TestDatabase(); - - private DatabaseContext _databaseContext; - private readonly PasswordService _passwordService = new PasswordService(); private readonly ETagGenerator _eTagGenerator = new ETagGenerator(); @@ -39,20 +34,12 @@ namespace Timeline.Tests.Services { } - public async Task InitializeAsync() - { - await _testDatabase.InitializeAsync(); - _databaseContext = _testDatabase.CreateContext(); - _dataManager = new DataManager(_databaseContext, _eTagGenerator); - _userService = new UserService(NullLogger.Instance, _databaseContext, _passwordService, _clock); - _timelineService = new TimelineService(NullLogger.Instance, _databaseContext, _dataManager, _userService, _imageValidator, _clock); - _userDeleteService = new UserDeleteService(NullLogger.Instance, _databaseContext, _timelineService); - } - - public async Task DisposeAsync() + protected override void OnDatabaseCreated() { - await _testDatabase.DisposeAsync(); - await _databaseContext.DisposeAsync(); + _dataManager = new DataManager(Database, _eTagGenerator); + _userService = new UserService(NullLogger.Instance, Database, _passwordService, _clock); + _timelineService = new TimelineService(NullLogger.Instance, Database, _dataManager, _userService, _imageValidator, _clock); + _userDeleteService = new UserDeleteService(NullLogger.Instance, Database, _timelineService); } public void Dispose() diff --git a/BackEnd/Timeline.Tests/Services/UserPermissionTest.cs b/BackEnd/Timeline.Tests/Services/UserPermissionTest.cs new file mode 100644 index 00000000..4bcbc633 --- /dev/null +++ b/BackEnd/Timeline.Tests/Services/UserPermissionTest.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Timeline.Entities; +using Timeline.Services; +using Timeline.Tests.Helpers; +using Xunit; + +namespace Timeline.Tests.Services +{ + public class UserPermissionTest : DatabaseBasedTest + { + private UserPermissionService _service; + + public UserPermissionTest() + { + + } + + protected override void OnDatabaseCreated() + { + _service = new UserPermissionService(Database); + } + + + } +} -- cgit v1.2.3