hikvision-sync-service/Tests/UserSyncJsonParserTests.cs

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("{}"));
}
}