2671639250
- Server-057: extend []-suffix normalization to AddItemBulk/AddBufferedItem so bulk-added array tags bind write-capable handles (authz check, worker bind, and registration kept consistent); update gateway.md + client READMEs. Tests: AddItemBulk/AddBufferedItem wiring. - Server-058: assert []-fallback-resolved bare array names are still denied when out of read/write scope and that MaxWriteClassification is enforced on suffixed array registrations. - Contracts-023/024/025: round-trip + field-19 descriptor pin for MxSparseArray; document MxSparseArray in docs/Contracts.md; enumerate it in the protocol-version-3 test summary. - Tests-040: add wiring tests for the six uncovered sparse-write arms (WriteSecured, Write2, WriteSecured2, Write2Bulk, WriteSecuredBulk, WriteSecured2Bulk). dotnet build + targeted tests green (184 passed).
42 lines
1.8 KiB
C#
42 lines
1.8 KiB
C#
using ZB.MOM.WW.MxGateway.Contracts;
|
|
|
|
namespace ZB.MOM.WW.MxGateway.Tests.Contracts;
|
|
|
|
public sealed class GatewayContractInfoTests
|
|
{
|
|
/// <summary>Verifies that the default backend name is "mxaccess-worker".</summary>
|
|
[Fact]
|
|
public void DefaultBackendName_IsMxAccessWorker()
|
|
{
|
|
Assert.Equal("mxaccess-worker", GatewayContractInfo.DefaultBackendName);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Pins the current <see cref="GatewayContractInfo.GatewayProtocolVersion"/>
|
|
/// constant at 3. All three of the following extensions shipped under
|
|
/// version 3 as strictly additive contract changes that did not require a
|
|
/// further bump: (1) the alarm proto extension (<c>AcknowledgeAlarm</c> /
|
|
/// <c>QueryActiveAlarms</c> RPCs, the <c>OnAlarmTransitionEvent</c> body,
|
|
/// and the alarm command/reply payload cases); (2) the bulk write/read
|
|
/// command family (<c>WriteBulk</c> / <c>Write2Bulk</c> /
|
|
/// <c>WriteSecuredBulk</c> / <c>WriteSecured2Bulk</c> / <c>ReadBulk</c>
|
|
/// plus their <c>BulkWriteReply</c> and <c>BulkReadReply</c> payloads);
|
|
/// (3) the sparse-array write ergonomics extension (<c>MxSparseArray</c> /
|
|
/// <c>MxSparseElement</c> messages plus the <c>sparse_array_value = 19</c>
|
|
/// arm on the <c>MxValue</c> oneof). A future breaking contract change
|
|
/// should bump this constant and update this test in lock-step.
|
|
/// </summary>
|
|
[Fact]
|
|
public void GatewayProtocolVersion_IsVersionThree()
|
|
{
|
|
Assert.Equal(3u, GatewayContractInfo.GatewayProtocolVersion);
|
|
}
|
|
|
|
/// <summary>Verifies that the worker protocol version starts at version one.</summary>
|
|
[Fact]
|
|
public void WorkerProtocolVersion_StartsAtVersionOne()
|
|
{
|
|
Assert.Equal(1u, GatewayContractInfo.WorkerProtocolVersion);
|
|
}
|
|
}
|