71 lines
2.8 KiB
C#
71 lines
2.8 KiB
C#
namespace Yh.SchClass.OpenApi.Tests;
|
|
|
|
/// <summary>OATea(教师)端点契约与 <see cref="TeaInfoVo"/> 反序列化。</summary>
|
|
public class SchClassTeaInfoClientTests
|
|
{
|
|
private const string Root = "/oapi/OATea/";
|
|
|
|
[Fact]
|
|
public async Task OATea_全部4个端点_路径与参数名对齐()
|
|
{
|
|
var handler = SchClassTestHost.Ok();
|
|
var api = SchClassTestHost.Api(handler);
|
|
|
|
await api.TeaInfo.GetTeaInfoAsync(77);
|
|
SchClassTestHost.Verify(handler, HttpMethod.Get, Root + "GetTeainfo", "?uid=77");
|
|
|
|
await api.TeaInfo.GetArrTeaInfoAsync("77,78");
|
|
SchClassTestHost.VerifyBody(handler, Root + "GetArrTeainfo", "77,78");
|
|
|
|
await api.TeaInfo.GetSchTeaInfoAsync("S1", 2);
|
|
SchClassTestHost.Verify(handler, HttpMethod.Get, Root + "GetSchTeainfo", "?SchSerID=S1&schId=2");
|
|
|
|
await api.TeaInfo.GetSchTeaListAsync("S1", 2);
|
|
SchClassTestHost.Verify(handler, HttpMethod.Get, Root + "GetSchTeaList", "?SchSerID=S1&schId=2");
|
|
}
|
|
|
|
[Fact]
|
|
public async Task TeaInfoVO_字段按Java原名反序列化()
|
|
{
|
|
var handler = FakeHandler.Json(HttpStatusCode.OK, """
|
|
{"SchSerID":"S001","Teapolitical":"党员","TeaWorkStart":"2010-09-01","Account":"wang",
|
|
"SchSerIDs":"S001","role":3,"JiaoYuJu":"市教育局","TeaSex":"男","IsLeadingMiddle":0,
|
|
"TeaOriginPlace":"北京","Photo":null,"TeaIDCard":"110101","Name":"王老师","GroupID":30,
|
|
"SchName":"第一中学","TeaTeachStart":"2010-09-01","TeaSerID":"77","UserID":1001,
|
|
"TeaNation":"汉","Tel":"13800000000","TeaWorkType":"专任","TeaNo":7,"TeaBirth":"1985-01-01"}
|
|
""");
|
|
|
|
var tea = await SchClassTestHost.Api(handler).TeaInfo.GetTeaInfoAsync(77);
|
|
|
|
Assert.NotNull(tea);
|
|
Assert.Equal("王老师", tea!.Name);
|
|
Assert.Equal("S001", tea.SchSerId);
|
|
// 注意:查询参数 uid 传的是教师 teaId(77),而 VO.UserID 是用户中心 ID(1001),两者不是一回事
|
|
Assert.Equal("77", tea.TeaSerId);
|
|
Assert.Equal(1001, tea.UserId);
|
|
Assert.Equal(3, tea.Role);
|
|
Assert.Equal(30, tea.GroupId);
|
|
Assert.Equal("汉", tea.TeaNation);
|
|
Assert.Null(tea.Photo);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task 教师不存在_服务端404时返回null()
|
|
{
|
|
var handler = FakeHandler.Empty(HttpStatusCode.NotFound);
|
|
|
|
Assert.Null(await SchClassTestHost.Api(handler).TeaInfo.GetTeaInfoAsync(999999));
|
|
}
|
|
|
|
[Fact]
|
|
public async Task GetSchTeainfo_缺参数时服务端400抛异常()
|
|
{
|
|
var handler = FakeHandler.Text(HttpStatusCode.BadRequest, "schId 与 SchSerID 不能同时为空");
|
|
|
|
var ex = await Assert.ThrowsAsync<SchClassOpenApiException>(
|
|
() => SchClassTestHost.Api(handler).TeaInfo.GetSchTeaInfoAsync());
|
|
|
|
Assert.Equal(400, ex.StatusCode);
|
|
}
|
|
}
|