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);
|
}
|
}
|
}
|