From b102ed3edf1330e77240708afb59ec8f91d67b41 Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 18 Dec 2020 22:40:22 +0800 Subject: feat: Bookmark timeline service unit tests. --- .../Services/BookmarkTimelineServiceTest.cs | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 BackEnd/Timeline.Tests/Services/BookmarkTimelineServiceTest.cs (limited to 'BackEnd/Timeline.Tests/Services/BookmarkTimelineServiceTest.cs') diff --git a/BackEnd/Timeline.Tests/Services/BookmarkTimelineServiceTest.cs b/BackEnd/Timeline.Tests/Services/BookmarkTimelineServiceTest.cs new file mode 100644 index 00000000..1b8bff63 --- /dev/null +++ b/BackEnd/Timeline.Tests/Services/BookmarkTimelineServiceTest.cs @@ -0,0 +1,89 @@ +using FluentAssertions; +using Microsoft.Extensions.Logging.Abstractions; +using System.Threading.Tasks; +using Timeline.Services; +using Timeline.Tests.Helpers; +using Xunit; + +namespace Timeline.Tests.Services +{ + public class BookmarkTimelineServiceTest : DatabaseBasedTest + { + private BookmarkTimelineService _service = default!; + private UserService _userService = default!; + private TimelineService _timelineService = default!; + + protected override void OnDatabaseCreated() + { + var clock = new TestClock(); + _userService = new UserService(NullLogger.Instance, Database, new PasswordService(), new UserPermissionService(Database), clock); + _timelineService = new TimelineService(Database, _userService, clock); + _service = new BookmarkTimelineService(Database, _userService, _timelineService); + } + + [Fact] + public async Task Should_Work() + { + var userId = await _userService.GetUserIdByUsername("user"); + + { + var b = await _service.GetBookmarks(userId); + b.Should().BeEmpty(); + } + + await _timelineService.CreateTimeline("tl", userId); + await _service.AddBookmark(userId, "tl"); + + { + var b = await _service.GetBookmarks(userId); + b.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.AddBookmark(userId, "t1"); + + await _timelineService.CreateTimeline("t2", userId); + await _service.AddBookmark(userId, "t2"); + + var b = await _service.GetBookmarks(userId); + + b.Should().HaveCount(2); + b[0].Name.Should().Be("t1"); + b[1].Name.Should().Be("t2"); + } + + [Fact] + public async Task Multiple_Should_Work() + { + var userId = await _userService.GetUserIdByUsername("user"); + + // make timeline id not same as entity id. + await _timelineService.CreateTimeline("t0", userId); + + await _timelineService.CreateTimeline("t1", userId); + await _service.AddBookmark(userId, "t1"); + + await _timelineService.CreateTimeline("t2", userId); + await _service.AddBookmark(userId, "t2"); + + await _timelineService.CreateTimeline("t3", userId); + await _service.AddBookmark(userId, "t3"); + + await _service.MoveBookmark(userId, "t3", 2); + (await _service.GetBookmarks(userId))[1].Name.Should().Be("t3"); + + await _service.MoveBookmark(userId, "t1", 3); + (await _service.GetBookmarks(userId))[2].Name.Should().Be("t1"); + + await _service.RemoveBookmark(userId, "t2"); + await _service.RemoveBookmark(userId, "t1"); + await _service.RemoveBookmark(userId, "t3"); + (await _service.GetBookmarks(userId)).Should().BeEmpty(); + } + } +} -- cgit v1.2.3