From 9d287c9bb2dbcd0347d9a9e8e937022de185ec04 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 14 Nov 2020 01:58:38 +0800 Subject: ... --- .../IntegratedTests/HttpClientExtensions.cs | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 BackEnd/Timeline.Tests/IntegratedTests/HttpClientExtensions.cs (limited to 'BackEnd/Timeline.Tests/IntegratedTests/HttpClientExtensions.cs') diff --git a/BackEnd/Timeline.Tests/IntegratedTests/HttpClientExtensions.cs b/BackEnd/Timeline.Tests/IntegratedTests/HttpClientExtensions.cs new file mode 100644 index 00000000..9258e644 --- /dev/null +++ b/BackEnd/Timeline.Tests/IntegratedTests/HttpClientExtensions.cs @@ -0,0 +1,48 @@ +using System; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Net.Http.Json; +using System.Net.Mime; +using System.Text; +using System.Threading.Tasks; + +namespace Timeline.Tests.IntegratedTests +{ + public static class HttpClientExtensions + { + public static async Task PatchAsJsonAsync(this HttpClient client, string url, T body) + { + using var reqContent = JsonContent.Create(body, options: CommonJsonSerializeOptions.Options); + return await client.PatchAsync(url, reqContent); + } + + public static Task PutAsync(this HttpClient client, string url) + { + return client.PutAsync(url, null!); + } + + public static Task PutByteArrayAsync(this HttpClient client, string url, byte[] body, string mimeType) + { + return client.PutByteArrayAsync(new Uri(url, UriKind.RelativeOrAbsolute), body, mimeType); + } + + public static async Task PutByteArrayAsync(this HttpClient client, Uri url, byte[] body, string mimeType) + { + using var content = new ByteArrayContent(body); + content.Headers.ContentLength = body.Length; + content.Headers.ContentType = new MediaTypeHeaderValue(mimeType); + return await client.PutAsync(url, content); + } + + public static Task PutStringAsync(this HttpClient client, string url, string body, string? mimeType = null) + { + return client.PutStringAsync(new Uri(url, UriKind.RelativeOrAbsolute), body, mimeType); + } + + public static async Task PutStringAsync(this HttpClient client, Uri url, string body, string? mimeType = null) + { + using var content = new StringContent(body, Encoding.UTF8, mimeType ?? MediaTypeNames.Text.Plain); + return await client.PutAsync(url, content); + } + } +} -- cgit v1.2.3