From 0bda82609a08965f7bfefd20af3ab5112ce98dd2 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 17 Dec 2020 20:08:33 +0800 Subject: ... --- .../Timeline.Tests/Services/DatabaseBasedTest.cs | 10 ++++- .../Services/HighlightTimelineServiceTest.cs | 49 ++++++++++++++++++++++ 2 files changed, 57 insertions(+), 2 deletions(-) (limited to 'BackEnd/Timeline.Tests/Services') diff --git a/BackEnd/Timeline.Tests/Services/DatabaseBasedTest.cs b/BackEnd/Timeline.Tests/Services/DatabaseBasedTest.cs index 3bb6ebb5..90fb6463 100644 --- a/BackEnd/Timeline.Tests/Services/DatabaseBasedTest.cs +++ b/BackEnd/Timeline.Tests/Services/DatabaseBasedTest.cs @@ -2,6 +2,7 @@ using Timeline.Entities; using Timeline.Tests.Helpers; using Xunit; +using Xunit.Abstractions; namespace Timeline.Tests.Services { @@ -10,15 +11,20 @@ namespace Timeline.Tests.Services protected TestDatabase TestDatabase { get; } protected DatabaseContext Database { get; private set; } = default!; - protected DatabaseBasedTest(bool databaseCreateUsers = true) + private readonly ITestOutputHelper? _testOutputHelper; + + protected DatabaseBasedTest(bool databaseCreateUsers = true, ITestOutputHelper? testOutputHelper = null) { + _testOutputHelper = testOutputHelper; TestDatabase = new TestDatabase(databaseCreateUsers); } + protected DatabaseBasedTest(ITestOutputHelper? testOutputHelper) : this(true, testOutputHelper) { } + public async Task InitializeAsync() { await TestDatabase.InitializeAsync(); - Database = TestDatabase.CreateContext(); + Database = TestDatabase.CreateContext(_testOutputHelper); await OnDatabaseCreatedAsync(); OnDatabaseCreated(); } diff --git a/BackEnd/Timeline.Tests/Services/HighlightTimelineServiceTest.cs b/BackEnd/Timeline.Tests/Services/HighlightTimelineServiceTest.cs index 8ba26613..dca070c6 100644 --- a/BackEnd/Timeline.Tests/Services/HighlightTimelineServiceTest.cs +++ b/BackEnd/Timeline.Tests/Services/HighlightTimelineServiceTest.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using Timeline.Services; using Timeline.Tests.Helpers; using Xunit; +using Xunit.Abstractions; namespace Timeline.Tests.Services { @@ -15,6 +16,12 @@ namespace Timeline.Tests.Services private HighlightTimelineService _service = default!; + public HighlightTimelineServiceTest(ITestOutputHelper testOutputHelper) + : base(testOutputHelper) + { + + } + protected override void OnDatabaseCreated() { _userService = new UserService(NullLogger.Instance, Database, new PasswordService(), new UserPermissionService(Database), _clock); @@ -39,5 +46,47 @@ namespace Timeline.Tests.Services ht.Should().HaveCount(1).And.BeEquivalentTo(await _timelineService.GetTimeline("tl")); } } + + [Fact] + public async Task NewOne_Should_BeAtLast() + { + var userId = await _userService.GetUserIdByUsername("user"); + await _timelineService.CreateTimeline("t1", userId); + await _service.AddHighlightTimeline("t1", userId); + + await _timelineService.CreateTimeline("t2", userId); + await _service.AddHighlightTimeline("t2", userId); + + var ht = await _service.GetHighlightTimelines(); + + ht.Should().HaveCount(2); + ht[0].Name.Should().Be("t1"); + ht[1].Name.Should().Be("t2"); + } + + [Fact] + public async Task Multiple_Should_Work() + { + var userId = await _userService.GetUserIdByUsername("user"); + await _timelineService.CreateTimeline("t1", userId); + await _service.AddHighlightTimeline("t1", userId); + + await _timelineService.CreateTimeline("t2", userId); + await _service.AddHighlightTimeline("t2", userId); + + await _timelineService.CreateTimeline("t3", userId); + await _service.AddHighlightTimeline("t3", userId); + + await _service.MoveHighlightTimeline("t3", 2); + (await _service.GetHighlightTimelines())[1].Name.Should().Be("t3"); + + await _service.MoveHighlightTimeline("t1", 3); + (await _service.GetHighlightTimelines())[2].Name.Should().Be("t1"); + + await _service.RemoveHighlightTimeline("t2", userId); + await _service.RemoveHighlightTimeline("t1", userId); + await _service.RemoveHighlightTimeline("t3", userId); + (await _service.GetHighlightTimelines()).Should().BeEmpty(); + } } } -- cgit v1.2.3