48 lines
1.5 KiB
C#
48 lines
1.5 KiB
C#
using System.Linq;
|
|
using Xunit;
|
|
|
|
namespace HikvisionAttendanceService.Tests;
|
|
|
|
public class UserSyncJsonParserTests
|
|
{
|
|
[Fact]
|
|
public void ParseUserInfoSearchPage_extracts_users_and_face_url()
|
|
{
|
|
const string json = """
|
|
{
|
|
"UserInfoSearch": {
|
|
"UserInfo": [
|
|
{
|
|
"employeeNo": "0000000001",
|
|
"name": "Test User",
|
|
"numOfFace": 1,
|
|
"numOfFP": 0,
|
|
"gender": "male",
|
|
"faceURL": "http://192.168.1.10/LOCALS/pic/enrlFace/0/1.jpg@WEB1",
|
|
"Valid": { "enable": true, "beginTime": "2026-01-01T00:00:00", "endTime": "2030-12-31T23:59:59" }
|
|
}
|
|
]
|
|
}
|
|
}
|
|
""";
|
|
|
|
var list = UserSyncJsonParser.ParseUserInfoSearchPage(json);
|
|
Assert.Single(list);
|
|
var u = list[0];
|
|
Assert.Equal("0000000001", u.EmployeeNo);
|
|
Assert.Equal("Test User", u.Name);
|
|
Assert.Equal(1, u.NumOfFace);
|
|
Assert.Equal(0, u.NumOfFp);
|
|
Assert.Contains("enrlFace", u.FaceUrl);
|
|
Assert.True(u.ValidEnable);
|
|
Assert.Contains("2026-01-01", u.ValidBeginTime);
|
|
}
|
|
|
|
[Fact]
|
|
public void ParseUserInfoSearchPage_empty_json_returns_empty()
|
|
{
|
|
Assert.Empty(UserSyncJsonParser.ParseUserInfoSearchPage(""));
|
|
Assert.Empty(UserSyncJsonParser.ParseUserInfoSearchPage("{}"));
|
|
}
|
|
}
|