wenxiangchao
4 天以前 559890c482f5973f06aafdfec9550fee5ba3c7f2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System.Text.Json;
using Aging.ResourceContracts;
using Xunit;
 
namespace Aging.MvpTests
{
    public class ContractSerializeTests
    {
        [Fact]
        public void LeaseGrant_RoundTrips_Json()
        {
            var g = new LeaseGrant("broker-b01", "can/can02", "lease_abc",
                "W01.RunA", OwnerTypeV3.Maintenance, epoch: 7, generation: 42,
                expiresUtcMs: 1793673600000);
            var json = JsonSerializer.Serialize(g);
            var back = JsonSerializer.Deserialize<LeaseGrant>(json)!;
            Assert.Equal(g.Generation, back.Generation);
            Assert.Equal(g.Epoch, back.Epoch);
            Assert.Equal(g.LeaseId, back.LeaseId);
            Assert.Equal(g.OwnerType, back.OwnerType);
        }
 
        [Fact]
        public void IpcEnvelope_Carries_BodyAndIdentity()
        {
            var e = new IpcEnvelope
            {
                ProtocolVersion = 1, MessageType = "SubmitTask",
                RequestId = "req-1", ClientInstanceId = "hmi/bootA/123",
                AuthorityId = "broker-b01", ConfigHash = "sha256:x",
                BodyJson = "{\"operationCode\":\"SEND\"}"
            };
            var json = JsonSerializer.Serialize(e);
            var back = JsonSerializer.Deserialize<IpcEnvelope>(json)!;
            Assert.Equal("SubmitTask", back.MessageType);
            Assert.Equal("sha256:x", back.ConfigHash);
        }
    }
}