using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Net;
using System.Net.Http;
using System.Reflection;
using System.Runtime.InteropServices;
[Fact]
public async Task DirectMessagesEventsNew_Test()
{
+ using var responseMessage = new HttpResponseMessage(HttpStatusCode.OK);
var mock = new Mock<IApiConnectionLegacy>();
- var responseText = """
+ var requestJson = """
{
"event": {
"type": "message_create",
}
""";
mock.Setup(x =>
- x.PostJsonAsync<TwitterMessageEventSingle>(
- new Uri("direct_messages/events/new.json", UriKind.Relative),
- responseText)
+ x.SendAsync(
+ It.Is<PostJsonRequest>(r =>
+ r.RequestUri == new Uri("direct_messages/events/new.json", UriKind.Relative) &&
+ r.JsonString == requestJson
+ )
+ )
)
- .ReturnsAsync(LazyJson.Create(new TwitterMessageEventSingle()));
+ .ReturnsAsync(new ApiResponse(responseMessage));
using var twitterApi = new TwitterApi();
twitterApi.ApiConnection = mock.Object;
{
var mock = new Mock<IApiConnectionLegacy>();
mock.Setup(x =>
- x.PostJsonAsync(
- new Uri("https://upload.twitter.com/1.1/media/metadata/create.json", UriKind.Absolute),
- """{"media_id": "12345", "alt_text": {"text": "hogehoge"}}""")
- )
- .ReturnsAsync("");
+ x.SendAsync(
+ It.Is<PostJsonRequest>(r =>
+ r.RequestUri == new Uri("https://upload.twitter.com/1.1/media/metadata/create.json") &&
+ r.JsonString == """{"media_id": "12345", "alt_text": {"text": "hogehoge"}}"""
+ )
+ )
+ );
using var twitterApi = new TwitterApi();
twitterApi.ApiConnection = mock.Object;
return this.Connection.GetAsync<TwitterMessageEventList>(endpoint, param, "/direct_messages/events/list");
}
- public Task<LazyJson<TwitterMessageEventSingle>> DirectMessagesEventsNew(long recipientId, string text, long? mediaId = null)
+ public async Task<LazyJson<TwitterMessageEventSingle>> DirectMessagesEventsNew(long recipientId, string text, long? mediaId = null)
{
- var endpoint = new Uri("direct_messages/events/new.json", UriKind.Relative);
-
var attachment = "";
if (mediaId != null)
{
}
""";
- return this.Connection.PostJsonAsync<TwitterMessageEventSingle>(endpoint, json);
+ var request = new PostJsonRequest
+ {
+ RequestUri = new("direct_messages/events/new.json", UriKind.Relative),
+ JsonString = json,
+ };
+
+ var response = await this.Connection.SendAsync(request)
+ .ConfigureAwait(false);
+
+ return response.ReadAsLazyJson<TwitterMessageEventSingle>();
}
public Task DirectMessagesEventsDestroy(TwitterDirectMessageId eventId)
return this.Connection.GetAsync<TwitterUploadMediaResult>(endpoint, param, endpointName: null);
}
- public Task MediaMetadataCreate(long mediaId, string altText)
+ public async Task MediaMetadataCreate(long mediaId, string altText)
{
- var endpoint = new Uri("https://upload.twitter.com/1.1/media/metadata/create.json");
-
var escapedAltText = JsonUtils.EscapeJsonString(altText);
- var json = $$$"""{"media_id": "{{{mediaId}}}", "alt_text": {"text": "{{{escapedAltText}}}"}}""";
+ var request = new PostJsonRequest
+ {
+ RequestUri = new("https://upload.twitter.com/1.1/media/metadata/create.json"),
+ JsonString = $$$"""{"media_id": "{{{mediaId}}}", "alt_text": {"text": "{{{escapedAltText}}}"}}""",
+ };
- return this.Connection.PostJsonAsync(endpoint, json);
+ await this.Connection.SendAsync(request)
+ .IgnoreResponse()
+ .ConfigureAwait(false);
}
public OAuthEchoHandler CreateOAuthEchoHandler(HttpMessageHandler innerHandler, Uri authServiceProvider, Uri? realm = null)