OSDN Git Service

DM送信完了時のレスポンスを即座にDirectタブに反映させる
[opentween/open-tween.git] / OpenTween.Tests / Api / TwitterApiTest.cs
index 0cf0610..40f9f8e 100644 (file)
@@ -104,7 +104,7 @@ namespace OpenTween.Api
                         },
                         "/statuses/home_timeline")
                 )
-                .ReturnsAsync(new TwitterStatus[0]);
+                .ReturnsAsync(Array.Empty<TwitterStatus>());
 
                 twitterApi.apiConnection = mock.Object;
 
@@ -134,7 +134,7 @@ namespace OpenTween.Api
                         },
                         "/statuses/mentions_timeline")
                 )
-                .ReturnsAsync(new TwitterStatus[0]);
+                .ReturnsAsync(Array.Empty<TwitterStatus>());
 
                 twitterApi.apiConnection = mock.Object;
 
@@ -166,7 +166,7 @@ namespace OpenTween.Api
                         },
                         "/statuses/user_timeline")
                 )
-                .ReturnsAsync(new TwitterStatus[0]);
+                .ReturnsAsync(Array.Empty<TwitterStatus>());
 
                 twitterApi.apiConnection = mock.Object;
 
@@ -261,7 +261,7 @@ namespace OpenTween.Api
 
                 twitterApi.apiConnection = mock.Object;
 
-                await twitterApi.StatusesUpdate("hogehoge", replyToId: null, mediaIds: null, excludeReplyUserIds: new long[0])
+                await twitterApi.StatusesUpdate("hogehoge", replyToId: null, mediaIds: null, excludeReplyUserIds: Array.Empty<long>())
                     .IgnoreResponse()
                     .ConfigureAwait(false);
 
@@ -536,7 +536,7 @@ namespace OpenTween.Api
                         },
                         "/lists/statuses")
                 )
-                .ReturnsAsync(new TwitterStatus[0]);
+                .ReturnsAsync(Array.Empty<TwitterStatus>());
 
                 twitterApi.apiConnection = mock.Object;
 
@@ -664,89 +664,6 @@ namespace OpenTween.Api
         }
 
         [Fact]
-        public async Task DirectMessagesRecv_Test()
-        {
-            using (var twitterApi = new TwitterApi())
-            {
-                var mock = new Mock<IApiConnection>();
-                mock.Setup(x =>
-                    x.GetAsync<TwitterDirectMessage[]>(
-                        new Uri("direct_messages.json", UriKind.Relative),
-                        new Dictionary<string, string> {
-                            { "full_text", "true" },
-                            { "include_entities", "true" },
-                            { "include_ext_alt_text", "true" },
-                            { "count", "200" },
-                            { "max_id", "900" },
-                            { "since_id", "100" },
-                        },
-                        "/direct_messages")
-                )
-                .ReturnsAsync(new TwitterDirectMessage[0]);
-
-                twitterApi.apiConnection = mock.Object;
-
-                await twitterApi.DirectMessagesRecv(count: 200, maxId: 900L, sinceId: 100L)
-                    .ConfigureAwait(false);
-
-                mock.VerifyAll();
-            }
-        }
-
-        [Fact]
-        public async Task DirectMessagesSent_Test()
-        {
-            using (var twitterApi = new TwitterApi())
-            {
-                var mock = new Mock<IApiConnection>();
-                mock.Setup(x =>
-                    x.GetAsync<TwitterDirectMessage[]>(
-                        new Uri("direct_messages/sent.json", UriKind.Relative),
-                        new Dictionary<string, string> {
-                            { "full_text", "true" },
-                            { "include_entities", "true" },
-                            { "include_ext_alt_text", "true" },
-                            { "count", "200" },
-                            { "max_id", "900" },
-                            { "since_id", "100" },
-                        },
-                        "/direct_messages/sent")
-                )
-                .ReturnsAsync(new TwitterDirectMessage[0]);
-
-                twitterApi.apiConnection = mock.Object;
-
-                await twitterApi.DirectMessagesSent(count: 200, maxId: 900L, sinceId: 100L)
-                    .ConfigureAwait(false);
-
-                mock.VerifyAll();
-            }
-        }
-
-        [Fact]
-        public async Task DirectMessagesDestroy_Test()
-        {
-            using (var twitterApi = new TwitterApi())
-            {
-                var mock = new Mock<IApiConnection>();
-                mock.Setup(x =>
-                    x.PostLazyAsync<TwitterDirectMessage>(
-                        new Uri("direct_messages/destroy.json", UriKind.Relative),
-                        new Dictionary<string, string> { { "id", "100" } })
-                )
-                .ReturnsAsync(LazyJson.Create(new TwitterDirectMessage { Id = 100L }));
-
-                twitterApi.apiConnection = mock.Object;
-
-                await twitterApi.DirectMessagesDestroy(statusId: 100L)
-                    .IgnoreResponse()
-                    .ConfigureAwait(false);
-
-                mock.VerifyAll();
-            }
-        }
-
-        [Fact]
         public async Task DirectMessagesEventsList_Test()
         {
             using (var twitterApi = new TwitterApi())
@@ -779,7 +696,7 @@ namespace OpenTween.Api
             {
                 var mock = new Mock<IApiConnection>();
                 mock.Setup(x =>
-                    x.PostJsonAsync(
+                    x.PostJsonAsync<TwitterMessageEventSingle>(
                         new Uri("direct_messages/events/new.json", UriKind.Relative),
                         @"{
   ""event"": {
@@ -801,7 +718,7 @@ namespace OpenTween.Api
   }
 }")
                 )
-                .Returns(Task.FromResult(0));
+                .ReturnsAsync(LazyJson.Create(new TwitterMessageEventSingle()));
 
                 twitterApi.apiConnection = mock.Object;
 
@@ -813,6 +730,27 @@ namespace OpenTween.Api
         }
 
         [Fact]
+        public async Task DirectMessagesEventsDestroy_Test()
+        {
+            using (var twitterApi = new TwitterApi())
+            {
+                var mock = new Mock<IApiConnection>();
+                mock.Setup(x =>
+                    x.DeleteAsync(
+                        new Uri("direct_messages/events/destroy.json?id=100", UriKind.Relative))
+                )
+                .Returns(Task.CompletedTask);
+
+                twitterApi.apiConnection = mock.Object;
+
+                await twitterApi.DirectMessagesEventsDestroy(eventId: "100")
+                    .ConfigureAwait(false);
+
+                mock.VerifyAll();
+            }
+        }
+
+        [Fact]
         public async Task UsersShow_Test()
         {
             using (var twitterApi = new TwitterApi())
@@ -857,7 +795,7 @@ namespace OpenTween.Api
                         },
                         "/users/lookup")
                 )
-                .ReturnsAsync(new TwitterUser[0]);
+                .ReturnsAsync(Array.Empty<TwitterUser>());
 
                 twitterApi.apiConnection = mock.Object;
 
@@ -913,7 +851,7 @@ namespace OpenTween.Api
                         },
                         "/favorites/list")
                 )
-                .ReturnsAsync(new TwitterStatus[0]);
+                .ReturnsAsync(Array.Empty<TwitterStatus>());
 
                 twitterApi.apiConnection = mock.Object;
 
@@ -1057,7 +995,7 @@ namespace OpenTween.Api
                         null,
                         "/friendships/no_retweets/ids")
                 )
-                .ReturnsAsync(new long[0]);
+                .ReturnsAsync(Array.Empty<long>());
 
                 twitterApi.apiConnection = mock.Object;
 
@@ -1375,7 +1313,7 @@ namespace OpenTween.Api
                         },
                         new Dictionary<string, IMediaItem> { { "media", media } })
                 )
-                .Returns(Task.FromResult(0));
+                .Returns(Task.CompletedTask);
 
                 twitterApi.apiConnection = mock.Object;
 
@@ -1449,7 +1387,7 @@ namespace OpenTween.Api
                         new Uri("https://upload.twitter.com/1.1/media/metadata/create.json", UriKind.Absolute),
                         "{\"media_id\": \"12345\", \"alt_text\": {\"text\": \"hogehoge\"}}")
                 )
-                .Returns(Task.FromResult(0));
+                .Returns(Task.CompletedTask);
 
                 twitterApi.apiConnection = mock.Object;
 
@@ -1484,17 +1422,5 @@ namespace OpenTween.Api
                 mock.VerifyAll();
             }
         }
-
-        [Theory]
-        [InlineData("", "")]
-        [InlineData("123ABCabc", "123ABCabc")]
-        [InlineData(@"\", @"\\")]
-        [InlineData("\"", "\\\"")]
-        [InlineData("\n", @"\u000A")]
-        [InlineData("\U0001D11E", @"\uD834\uDD1E")]
-        public void EscapeJsonString_Test(string targetText, string expectedText)
-        {
-            Assert.Equal(expectedText, TwitterApi.EscapeJsonString(targetText));
-        }
     }
 }