OSDN Git Service

exclude_reply_user_ids が空の場合にはパラメータ自体を送信しない
authorKimura Youichi <kim.upsilon@bucyou.net>
Sun, 25 Sep 2016 08:01:08 +0000 (17:01 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 11 Nov 2017 21:06:35 +0000 (06:06 +0900)
Fixes: 12b51b8c ("TwitterApi.StatusesUpdateメソッドに新たに指定可能となったパラメータを追加")

OpenTween.Tests/Api/TwitterApiTest.cs
OpenTween/Api/TwitterApi.cs

index d6d36aa..6c50768 100644 (file)
@@ -239,6 +239,35 @@ namespace OpenTween.Api
         }
 
         [Fact]
+        public async Task StatusesUpdate_ExcludeReplyUserIdsEmptyTest()
+        {
+            using (var twitterApi = new TwitterApi())
+            {
+                var mock = new Mock<IApiConnection>();
+                mock.Setup(x =>
+                    x.PostLazyAsync<TwitterStatus>(
+                        new Uri("statuses/update.json", UriKind.Relative),
+                        new Dictionary<string, string> {
+                            { "status", "hogehoge" },
+                            { "include_entities", "true" },
+                            { "include_ext_alt_text", "true" },
+                            { "tweet_mode", "extended" },
+                            // exclude_reply_user_ids は空の場合には送信されない
+                        })
+                )
+                .ReturnsAsync(LazyJson.Create(new TwitterStatus()));
+
+                twitterApi.apiConnection = mock.Object;
+
+                await twitterApi.StatusesUpdate("hogehoge", replyToId: null, mediaIds: null, excludeReplyUserIds: new long[0])
+                    .IgnoreResponse()
+                    .ConfigureAwait(false);
+
+                mock.VerifyAll();
+            }
+        }
+
+        [Fact]
         public async Task StatusesDestroy_Test()
         {
             using (var twitterApi = new TwitterApi())
index 40b142c..9d2130a 100644 (file)
@@ -144,7 +144,7 @@ namespace OpenTween.Api
                 param.Add("media_ids", string.Join(",", mediaIds));
             if (autoPopulateReplyMetadata != null)
                 param["auto_populate_reply_metadata"] = autoPopulateReplyMetadata.Value ? "true" : "false";
-            if (excludeReplyUserIds != null)
+            if (excludeReplyUserIds != null && excludeReplyUserIds.Count > 0)
                 param["exclude_reply_user_ids"] = string.Join(",", excludeReplyUserIds);
 
             return this.apiConnection.PostLazyAsync<TwitterStatus>(endpoint, param);