This commit is contained in:
wanghu
2026-09-02 09:38:45 +08:00
commit 8774b6cc44
128 changed files with 9382 additions and 0 deletions
@@ -0,0 +1,59 @@
namespace Yh.SchClass.OpenApi.Tests;
/// <summary>SchInfo(学校)端点契约与 <see cref="SchInfoVo"/> 反序列化。</summary>
public class SchClassSchInfoClientTests
{
private const string Root = "/oapi/SchInfo/";
[Fact]
public async Task SchInfo_全部7个端点_路径与参数名对齐()
{
var handler = SchClassTestHost.Ok();
var api = SchClassTestHost.Api(handler);
await api.SchInfo.GetSchListAsync("1,2");
SchClassTestHost.Verify(handler, HttpMethod.Get, Root + "GetSchlist", "?SchIDArr=1,2");
await api.SchInfo.AllListAsync();
SchClassTestHost.Verify(handler, HttpMethod.Get, Root + "AllList");
await api.SchInfo.GetSchFirstAsync("S1");
SchClassTestHost.Verify(handler, HttpMethod.Get, Root + "GetSchFirst", "?SchID=S1");
await api.SchInfo.GetUserSchFirstAsync(9);
SchClassTestHost.Verify(handler, HttpMethod.Get, Root + "GetUserSchFirst", "?UserSchID=9");
await api.SchInfo.GetUserSchListAsync("9,10");
SchClassTestHost.Verify(handler, HttpMethod.Get, Root + "GetUserSchlist", "?UserSchIds=9,10");
await api.SchInfo.GetSchoolByGroupIdAsync(3);
SchClassTestHost.Verify(handler, HttpMethod.Get, Root + "GetSchoolByGroupId", "?groupId=3");
await api.SchInfo.GetSchoolBySchoolenIdAsync(4);
SchClassTestHost.Verify(handler, HttpMethod.Get, Root + "GetSchoolBySchoolenId", "?groupId=4");
}
[Fact]
public async Task SchInfoVO_按JsonProperty锚定的键名反序列化()
{
var handler = FakeHandler.Json(HttpStatusCode.OK, """
[{"SchSerId":"S001","UserSchSerId":9,"SchName":"第一中学"},
{"SchSerId":"S002","UserSchSerId":10,"SchName":"第二中学"}]
""");
var list = await SchClassTestHost.Api(handler).SchInfo.AllListAsync();
Assert.Equal(2, list.Count);
Assert.Equal("S001", list[0].SchSerId);
Assert.Equal(9, list[0].UserSchSerId);
Assert.Equal("第二中学", list[1].SchName);
}
[Fact]
public async Task GetSchFirst_未找到时返回null()
{
var handler = FakeHandler.Json(HttpStatusCode.OK, "null");
Assert.Null(await SchClassTestHost.Api(handler).SchInfo.GetSchFirstAsync("nope"));
}
}