aboutsummaryrefslogtreecommitdiff
path: root/Timeline.Tests
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-06-18 19:41:51 +0800
committercrupest <crupest@outlook.com>2020-06-18 19:41:51 +0800
commitd9ed0c1b0fb04d161d27b556e33f0a03738e717d (patch)
tree36029dc650c6fd7e166ca1db36cb761ba77dd402 /Timeline.Tests
parent135f47e7477bb2a72c423145dcd286ae494fd3ed (diff)
downloadtimeline-d9ed0c1b0fb04d161d27b556e33f0a03738e717d.tar.gz
timeline-d9ed0c1b0fb04d161d27b556e33f0a03738e717d.tar.bz2
timeline-d9ed0c1b0fb04d161d27b556e33f0a03738e717d.zip
feat(back): Timeline service add post modified since.
Diffstat (limited to 'Timeline.Tests')
-rw-r--r--Timeline.Tests/Helpers/TestClock.cs2
-rw-r--r--Timeline.Tests/Services/TimelineServiceTest.cs34
2 files changed, 33 insertions, 3 deletions
diff --git a/Timeline.Tests/Helpers/TestClock.cs b/Timeline.Tests/Helpers/TestClock.cs
index de7d0eb7..0cbf236d 100644
--- a/Timeline.Tests/Helpers/TestClock.cs
+++ b/Timeline.Tests/Helpers/TestClock.cs
@@ -36,7 +36,7 @@ namespace Timeline.Tests.Helpers
{
if (_currentTime == null)
return SetMockCurrentTime();
- _currentTime.Value.Add(timeSpan);
+ _currentTime += timeSpan;
return _currentTime.Value;
}
}
diff --git a/Timeline.Tests/Services/TimelineServiceTest.cs b/Timeline.Tests/Services/TimelineServiceTest.cs
index cb2ade61..4f081b5d 100644
--- a/Timeline.Tests/Services/TimelineServiceTest.cs
+++ b/Timeline.Tests/Services/TimelineServiceTest.cs
@@ -63,11 +63,11 @@ namespace Timeline.Tests.Services
[InlineData("tl")]
public async Task Timeline_LastModified(string timelineName)
{
- _clock.ForwardCurrentTime();
+ var initTime = _clock.ForwardCurrentTime();
void Check(Models.Timeline timeline)
{
- timeline.NameLastModified.Should().Be(_clock.GetCurrentTime());
+ timeline.NameLastModified.Should().Be(initTime);
timeline.LastModified.Should().Be(_clock.GetCurrentTime());
}
@@ -90,5 +90,35 @@ namespace Timeline.Tests.Services
await _timelineService.ChangeMember(timelineName, new List<string> { "admin" }, null);
await GetAndCheck();
}
+
+ [Theory]
+ [InlineData("@user")]
+ [InlineData("tl")]
+ public async Task GetPosts_ModifiedSince(string timelineName)
+ {
+ _clock.ForwardCurrentTime();
+
+ var userId = await _userService.GetUserIdByUsername("user");
+
+ var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
+ if (!isPersonal)
+ await _timelineService.CreateTimeline(timelineName, userId);
+
+ var postContentList = new string[] { "a", "b", "c", "d" };
+
+ DateTime testPoint = new DateTime();
+
+ foreach (var (content, index) in postContentList.Select((v, i) => (v, i)))
+ {
+ var t = _clock.ForwardCurrentTime();
+ if (index == 1)
+ testPoint = t;
+ await _timelineService.CreateTextPost(timelineName, userId, content, null);
+ }
+
+ var posts = await _timelineService.GetPosts(timelineName, testPoint);
+ posts.Should().HaveCount(2)
+ .And.Subject.Select(p => (p.Content as TextTimelinePostContent).Text).Should().Equal(postContentList.Skip(2));
+ }
}
}