From 6ac5ba10f9c417f63a4713612a0abf5b20deb099 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 19 Dec 2020 20:08:49 +0800 Subject: feat: Bookmark timeline REST api. --- .../IntegratedTests/BookmarkTimelineTest.cs | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 BackEnd/Timeline.Tests/IntegratedTests/BookmarkTimelineTest.cs (limited to 'BackEnd/Timeline.Tests/IntegratedTests/BookmarkTimelineTest.cs') 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>("bookmarks"); + h.Should().BeEmpty(); + } + + await client.TestPutAsync("bookmarks/@user1"); + + { + var h = await client.TestGetAsync>("bookmarks"); + h.Should().HaveCount(1); + h[0].Name.Should().Be("@user1"); + } + + await client.TestPutAsync("bookmarks/t1"); + + { + var h = await client.TestGetAsync>("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>("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>("bookmarks"); + h.Should().HaveCount(1); + h[0].Name.Should().Be("t1"); + } + + await client.TestDeleteAsync("bookmarks/t1"); + + { + var h = await client.TestGetAsync>("bookmarks"); + h.Should().BeEmpty(); + } + } + } +} -- cgit v1.2.3