using System.Collections.Generic; using System.Threading.Tasks; using Util.AspNetCore.Tests.Samples; using Xunit; namespace Util.AspNetCore.Tests.Http; /// /// Http客户端测试 - Post操作 /// public partial class HttpClientServiceTest { /// /// 测试Post调用 - 返回字符串结果 /// [Fact] public async Task TestPost_1() { var dto = new CustomerDto { Code = "a" }; var result = await _client.Post( "/api/test2/create", dto ).GetResultAsync(); Assert.Equal( "ok:a", result ); } /// /// 测试Post调用 - 返回泛型结果 /// [Fact] public async Task TestPost_2() { var dto = new CustomerDto { Code = "a" }; var result = await _client.Post( "/api/test2", dto ).GetResultAsync(); Assert.Equal( "a", result.Code ); } /// /// 测试Post调用 - 使用Content方法传递参数 - 键值对 /// [Fact] public async Task TestPost_Content_1() { var result = await _client.Post( "/api/test2/create" ).Content( "code", "a" ).GetResultAsync(); Assert.Equal( "ok:a", result ); } /// /// 测试Post调用 - 使用Content方法传递参数 - 字典 /// [Fact] public async Task TestPost_Content_2() { var dic = new Dictionary { { "code", "a" } }; var result = await _client.Post( "/api/test2/create" ).Content( dic ).GetResultAsync(); Assert.Equal( "ok:a", result ); } /// /// 测试Post调用 - 使用Content方法传递参数 - 对象 /// [Fact] public async Task TestPost_Content_3() { var dto = new CustomerDto { Code = "a" }; var result = await _client.Post( "/api/test2/create" ).Content( dto ).GetResultAsync(); Assert.Equal( "ok:a", result ); } /// /// 测试Post调用 - 上传文件 - 文件路径 /// [Fact] public async Task TestPost_FileContent_1() { var path = Util.Helpers.Common.GetPhysicalPath( "Resources/a.png" ); var result = await _client.Post( "/api/test6" ).FileContent( path, "file1" ).GetResultAsync(); Assert.Equal( "ok:file1:a.png", result ); } /// /// 测试Post调用 - 上传文件 - 文件流 /// [Fact] public async Task TestPost_FileContent_2() { var path = Util.Helpers.Common.GetPhysicalPath( "Resources/a.png" ); var stream = await Util.Helpers.File.ReadToMemoryStreamAsync( path ); var result = await _client.Post( "/api/test6" ).FileContent( stream, "abc.png", "file2" ).GetResultAsync(); Assert.Equal( "ok:file2:abc.png", result ); } /// /// 测试Post调用 - 上传文件 - 多文件上传 /// [Fact] public async Task TestPost_FileContent_3() { var path = Util.Helpers.Common.GetPhysicalPath( "Resources/a.png" ); var stream = await Util.Helpers.File.ReadToMemoryStreamAsync( path ); var result = await _client.Post( "/api/test6/multi" ) .FileContent( path, "file1" ) .FileContent( stream, "b.png", "file2" ) .GetResultAsync(); Assert.Equal( "ok:file1:a.png:file2:b.png", result ); } /// /// 测试Post调用 - 上传文件 - 发送参数 /// [Fact] public async Task TestPost_FileContent_4() { var path = Util.Helpers.Common.GetPhysicalPath( "Resources/a.png" ); var result = await _client.Post( "/api/test6" ) .FileContent( path, "file1" ) .Content( "util","core" ) .GetResultAsync(); Assert.Equal( "ok:file1:a.png:core", result ); } }