docs: backfill XML documentation across 756 files
v2-ci / build (push) Failing after 1m43s
v2-ci / unit-tests (tests/Core/ZB.MOM.WW.OtOpcUa.Cluster.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Runtime.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Security.Tests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (push) Has been skipped

Adds <summary>, <param>, <typeparam>, and <inheritdoc/> tags to public
members surfaced by commentchecker — resolves 5,847 of 5,869 issues
(99.6%) across three /fixdocs passes.
This commit is contained in:
Joseph Doherty
2026-05-28 08:10:17 -04:00
parent f9fc7dd2e1
commit 64e3fbe035
756 changed files with 9876 additions and 96 deletions
@@ -15,7 +15,13 @@ public sealed class ModbusCoalescingTests
private sealed class CountingTransport : IModbusTransport
{
public readonly List<(byte Unit, byte Fc, ushort Address, ushort Quantity)> Reads = new();
/// <summary>Establishes a connection asynchronously.</summary>
/// <param name="ct">Cancellation token for the operation.</param>
public Task ConnectAsync(CancellationToken ct) => Task.CompletedTask;
/// <summary>Sends a Modbus PDU and receives the response.</summary>
/// <param name="unitId">The Modbus unit identifier.</param>
/// <param name="pdu">The Protocol Data Unit to send.</param>
/// <param name="ct">Cancellation token for the operation.</param>
public Task<byte[]> SendAsync(byte unitId, byte[] pdu, CancellationToken ct)
{
var addr = (ushort)((pdu[1] << 8) | pdu[2]);
@@ -32,9 +38,11 @@ public sealed class ModbusCoalescingTests
default: return Task.FromResult(new byte[] { pdu[0], 0, 0 });
}
}
/// <summary>Disposes the transport asynchronously.</summary>
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
}
/// <summary>Verifies that MaxReadGap=0 defaults to per-tag reads without coalescing.</summary>
[Fact]
public async Task MaxReadGap_Zero_Defaults_To_Per_Tag_Reads()
{
@@ -53,6 +61,7 @@ public sealed class ModbusCoalescingTests
fc03Reads.Count.ShouldBe(2);
}
/// <summary>Verifies that MaxReadGap bridges adjacent tags into a single read.</summary>
[Fact]
public async Task MaxReadGap_Bridges_Two_Adjacent_Tags_Into_One_Read()
{
@@ -74,6 +83,7 @@ public sealed class ModbusCoalescingTests
fc03Reads[0].Quantity.ShouldBe((ushort)5); // 100..104
}
/// <summary>Verifies that MaxReadGap splits blocks when gaps exceed threshold.</summary>
[Fact]
public async Task MaxReadGap_Splits_When_Gap_Exceeds_Threshold()
{
@@ -93,6 +103,7 @@ public sealed class ModbusCoalescingTests
fc03Reads.Count.ShouldBe(2); // T1+T2 coalesced; T3 alone
}
/// <summary>Verifies that tags with CoalesceProhibited are read separately.</summary>
[Fact]
public async Task CoalesceProhibited_Tag_Reads_Alone()
{
@@ -113,6 +124,7 @@ public sealed class ModbusCoalescingTests
fc03Reads.Count.ShouldBe(2);
}
/// <summary>Verifies that coalescing does not cross unit ID boundaries.</summary>
[Fact]
public async Task Coalescing_Does_Not_Cross_UnitId_Boundaries()
{
@@ -132,6 +144,7 @@ public sealed class ModbusCoalescingTests
fc03Reads.Select(r => r.Unit).Distinct().Count().ShouldBe(2);
}
/// <summary>Verifies that coalescing splits blocks exceeding MaxRegistersPerRead.</summary>
[Fact]
public async Task Coalescing_Splits_Block_That_Exceeds_MaxRegistersPerRead()
{
@@ -152,6 +165,7 @@ public sealed class ModbusCoalescingTests
fc03Reads.Count.ShouldBe(2);
}
/// <summary>Verifies that coalesced reads surface each tag value independently.</summary>
[Fact]
public async Task Coalesced_Read_Surfaces_Each_Tag_Value_Independently()
{