60 lines
2.2 KiB
C#
60 lines
2.2 KiB
C#
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"));
|
|
}
|
|
}
|