From 1eb71943ad8d4769cb6166a6f33c0eecea80fffe Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 18 Jun 2020 17:13:08 +0800 Subject: feat(back): Timeline service add last modified. --- Timeline.Tests/Services/TimelineServiceTest.cs | 53 +++++++++++++++----------- 1 file changed, 30 insertions(+), 23 deletions(-) (limited to 'Timeline.Tests/Services/TimelineServiceTest.cs') diff --git a/Timeline.Tests/Services/TimelineServiceTest.cs b/Timeline.Tests/Services/TimelineServiceTest.cs index f7a94dfc..cb2ade61 100644 --- a/Timeline.Tests/Services/TimelineServiceTest.cs +++ b/Timeline.Tests/Services/TimelineServiceTest.cs @@ -1,18 +1,20 @@ using Castle.Core.Logging; using FluentAssertions; +using FluentAssertions.Xml; using Microsoft.Extensions.Logging.Abstractions; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Timeline.Entities; +using Timeline.Models; using Timeline.Services; using Timeline.Tests.Helpers; using Xunit; namespace Timeline.Tests.Services { - public class TimelineServiceTest : IAsyncLifetime + public class TimelineServiceTest : IAsyncLifetime, IDisposable { private TestDatabase _testDatabase = new TestDatabase(); @@ -48,40 +50,45 @@ namespace Timeline.Tests.Services public async Task DisposeAsync() { await _testDatabase.DisposeAsync(); + await _databaseContext.DisposeAsync(); } - [Fact] - public async Task PersonalTimeline_LastModified() + public void Dispose() { - var mockTime = new DateTime(2000, 1, 1, 1, 1, 1); - - _clock.SetCurrentTime(mockTime); - - var timeline = await _timelineService.GetTimeline("@user"); - - timeline.NameLastModified.Should().Be(mockTime); - timeline.LastModified.Should().Be(mockTime); + _eTagGenerator.Dispose(); } - [Fact] - public async Task OrdinaryTimeline_LastModified() + [Theory] + [InlineData("@user")] + [InlineData("tl")] + public async Task Timeline_LastModified(string timelineName) { - var mockTime = new DateTime(2000, 1, 1, 1, 1, 1); - - _clock.SetCurrentTime(mockTime); + _clock.ForwardCurrentTime(); + void Check(Models.Timeline timeline) { - var timeline = await _timelineService.CreateTimeline("tl", await _userService.GetUserIdByUsername("user")); - - timeline.NameLastModified.Should().Be(mockTime); - timeline.LastModified.Should().Be(mockTime); + timeline.NameLastModified.Should().Be(_clock.GetCurrentTime()); + timeline.LastModified.Should().Be(_clock.GetCurrentTime()); } + async Task GetAndCheck() { - var timeline = await _timelineService.GetTimeline("tl"); - timeline.NameLastModified.Should().Be(mockTime); - timeline.LastModified.Should().Be(mockTime); + Check(await _timelineService.GetTimeline(timelineName)); } + + var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal); + if (!isPersonal) + Check(await _timelineService.CreateTimeline(timelineName, await _userService.GetUserIdByUsername("user"))); + + await GetAndCheck(); + + _clock.ForwardCurrentTime(); + await _timelineService.ChangeProperty(timelineName, new TimelineChangePropertyRequest { Visibility = TimelineVisibility.Public }); + await GetAndCheck(); + + _clock.ForwardCurrentTime(); + await _timelineService.ChangeMember(timelineName, new List { "admin" }, null); + await GetAndCheck(); } } } -- cgit v1.2.3