diff options
author | crupest <crupest@outlook.com> | 2020-12-19 20:08:49 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-12-19 20:08:49 +0800 |
commit | cf8a869de33cfa5db1967698059abccaaeaba4c9 (patch) | |
tree | 5e4a504e02b9d8592be7ec5b1aba28d2dd876ddf /BackEnd/Timeline.Tests/IntegratedTests/BookmarkTimelineTest.cs | |
parent | ab3aedad37fe4634efb0d6939d7a40642bfff032 (diff) | |
download | timeline-cf8a869de33cfa5db1967698059abccaaeaba4c9.tar.gz timeline-cf8a869de33cfa5db1967698059abccaaeaba4c9.tar.bz2 timeline-cf8a869de33cfa5db1967698059abccaaeaba4c9.zip |
feat: Bookmark timeline REST api.
Diffstat (limited to 'BackEnd/Timeline.Tests/IntegratedTests/BookmarkTimelineTest.cs')
-rw-r--r-- | BackEnd/Timeline.Tests/IntegratedTests/BookmarkTimelineTest.cs | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/BackEnd/Timeline.Tests/IntegratedTests/BookmarkTimelineTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/BookmarkTimelineTest.cs new file mode 100644 index 00000000..e6ae178f --- /dev/null +++ b/BackEnd/Timeline.Tests/IntegratedTests/BookmarkTimelineTest.cs @@ -0,0 +1,87 @@ +using FluentAssertions;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Timeline.Models.Http;
+using Xunit;
+
+namespace Timeline.Tests.IntegratedTests
+{
+ public class BookmarkTimelineTest : IntegratedTestBase
+ {
+ [Fact]
+ public async Task AuthTest()
+ {
+ using var client = await CreateDefaultClient();
+
+ await client.TestPutAssertUnauthorizedAsync("bookmarks/@user1");
+ await client.TestDeleteAssertUnauthorizedAsync("bookmarks/@user1");
+ await client.TestPostAssertUnauthorizedAsync("bookmarkop/move", new HttpBookmarkTimelineMoveRequest { Timeline = "aaa", NewPosition = 1 });
+ }
+
+ [Fact]
+ public async Task InvalidModel()
+ {
+ using var client = await CreateClientAsUser();
+
+ await client.TestPutAssertInvalidModelAsync("bookmarks/!!!");
+ await client.TestDeleteAssertInvalidModelAsync("bookmarks/!!!");
+ await client.TestPostAssertInvalidModelAsync("bookmarkop/move", new HttpBookmarkTimelineMoveRequest { Timeline = null!, NewPosition = 1 });
+ await client.TestPostAssertInvalidModelAsync("bookmarkop/move", new HttpBookmarkTimelineMoveRequest { Timeline = "!!!", NewPosition = 1 });
+ await client.TestPostAssertInvalidModelAsync("bookmarkop/move", new HttpBookmarkTimelineMoveRequest { Timeline = "aaa", NewPosition = null });
+ }
+
+ [Fact]
+ public async Task ShouldWork()
+ {
+ using var client = await CreateClientAsUser();
+ await client.TestPostAsync("timelines", new TimelineCreateRequest { Name = "t1" });
+
+
+ {
+ var h = await client.TestGetAsync<List<HttpTimeline>>("bookmarks");
+ h.Should().BeEmpty();
+ }
+
+ await client.TestPutAsync("bookmarks/@user1");
+
+ {
+ var h = await client.TestGetAsync<List<HttpTimeline>>("bookmarks");
+ h.Should().HaveCount(1);
+ h[0].Name.Should().Be("@user1");
+ }
+
+ await client.TestPutAsync("bookmarks/t1");
+
+ {
+ var h = await client.TestGetAsync<List<HttpTimeline>>("bookmarks");
+ h.Should().HaveCount(2);
+ h[0].Name.Should().Be("@user1");
+ h[1].Name.Should().Be("t1");
+ }
+
+ await client.TestPostAsync("bookmarkop/move", new HttpHighlightTimelineMoveRequest { Timeline = "@user1", NewPosition = 2 });
+
+ {
+ var h = await client.TestGetAsync<List<HttpTimeline>>("bookmarks");
+ h.Should().HaveCount(2);
+ h[0].Name.Should().Be("t1");
+ h[1].Name.Should().Be("@user1");
+ }
+
+ await client.TestDeleteAsync("bookmarks/@user1");
+
+ {
+ var h = await client.TestGetAsync<List<HttpTimeline>>("bookmarks");
+ h.Should().HaveCount(1);
+ h[0].Name.Should().Be("t1");
+ }
+
+ await client.TestDeleteAsync("bookmarks/t1");
+
+ {
+ var h = await client.TestGetAsync<List<HttpTimeline>>("bookmarks");
+ h.Should().BeEmpty();
+ }
+ }
+ }
+}
|