OSDN Git Service

TimelineReplaceEntryでcursorが更新されるテストケースを追加
authorKimura Youichi <kim.upsilon@bucyou.net>
Fri, 22 Dec 2023 14:13:35 +0000 (23:13 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Fri, 22 Dec 2023 14:13:35 +0000 (23:13 +0900)
OpenTween.Tests/Api/GraphQL/SearchTimelineRequestTest.cs
OpenTween.Tests/Resources/Responses/SearchTimeline_ReplaceCursor.json [new file with mode: 0644]

index 7003b27..7e960eb 100644 (file)
@@ -63,6 +63,28 @@ namespace OpenTween.Api.GraphQL
         }
 
         [Fact]
+        public async Task Send_ReplaceCursorTest()
+        {
+            using var apiResponse = await TestUtils.CreateApiResponse("Resources/Responses/SearchTimeline_ReplaceCursor.json");
+
+            var mock = new Mock<IApiConnection>();
+            mock.Setup(x => x.SendAsync(It.IsAny<IHttpRequest>()))
+                .ReturnsAsync(apiResponse);
+
+            var request = new SearchTimelineRequest(rawQuery: "#OpenTween")
+            {
+                Count = 20,
+            };
+
+            var response = await request.Send(mock.Object);
+            Assert.Empty(response.Tweets);
+            Assert.Equal("DAADDAABCgABFnlh4hraMAYKAAIOTm0DEhTAAQAIAAIAAAABCAADAAAAAQgABAAAAAAKAAUX8j3ezIBOIAoABhfyPd7Mf9jwAAA", response.CursorTop);
+            Assert.Equal("DAADDAABCgABFnlh4hraMAYKAAIOTm0DEhTAAQAIAAIAAAACCAADAAAAAQgABAAAAAAKAAUX8j3ezIBOIAoABhfyPd7Mf9jwAAA", response.CursorBottom);
+
+            mock.VerifyAll();
+        }
+
+        [Fact]
         public async Task Send_RequestCursor_Test()
         {
             using var apiResponse = await TestUtils.CreateApiResponse("Resources/Responses/SearchTimeline_SimpleTweet.json");
diff --git a/OpenTween.Tests/Resources/Responses/SearchTimeline_ReplaceCursor.json b/OpenTween.Tests/Resources/Responses/SearchTimeline_ReplaceCursor.json
new file mode 100644 (file)
index 0000000..a4d866f
--- /dev/null
@@ -0,0 +1,40 @@
+{
+  "data": {
+    "search_by_raw_query": {
+      "search_timeline": {
+        "timeline": {
+          "instructions": [
+            {
+              "type": "TimelineReplaceEntry",
+              "entry_id_to_replace": "cursor-top-9223372036854775807",
+              "entry": {
+                "entryId": "cursor-top-9223372036854775807",
+                "sortIndex": "9223372036854775807",
+                "content": {
+                  "entryType": "TimelineTimelineCursor",
+                  "__typename": "TimelineTimelineCursor",
+                  "value": "DAADDAABCgABFnlh4hraMAYKAAIOTm0DEhTAAQAIAAIAAAABCAADAAAAAQgABAAAAAAKAAUX8j3ezIBOIAoABhfyPd7Mf9jwAAA",
+                  "cursorType": "Top"
+                }
+              }
+            },
+            {
+              "type": "TimelineReplaceEntry",
+              "entry_id_to_replace": "cursor-bottom-0",
+              "entry": {
+                "entryId": "cursor-bottom-0",
+                "sortIndex": "0",
+                "content": {
+                  "entryType": "TimelineTimelineCursor",
+                  "__typename": "TimelineTimelineCursor",
+                  "value": "DAADDAABCgABFnlh4hraMAYKAAIOTm0DEhTAAQAIAAIAAAACCAADAAAAAQgABAAAAAAKAAUX8j3ezIBOIAoABhfyPd7Mf9jwAAA",
+                  "cursorType": "Bottom"
+                }
+              }
+            }
+          ]
+        }
+      }
+    }
+  }
+}