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
@@ -23,6 +23,7 @@ public sealed class GalaxyDriverInfrastructureTests
// ===== Driver.Galaxy-011 regression: GetMemoryFootprint reflects registry size =====
/// <summary>Verifies that memory footprint is zero when there are no subscriptions.</summary>
[Fact]
public void GetMemoryFootprint_IsZeroWhenNoSubscriptions()
{
@@ -32,6 +33,7 @@ public sealed class GalaxyDriverInfrastructureTests
driver.GetMemoryFootprint().ShouldBe(0L);
}
/// <summary>Verifies that memory footprint is nonzero after subscriptions are active.</summary>
[Fact]
public async Task GetMemoryFootprint_IsNonZeroAfterSubscribe()
{
@@ -45,6 +47,7 @@ public sealed class GalaxyDriverInfrastructureTests
driver.GetMemoryFootprint().ShouldBeGreaterThan(0L);
}
/// <summary>Verifies that memory footprint decreases after unsubscribing.</summary>
[Fact]
public async Task GetMemoryFootprint_DecreasesAfterUnsubscribe()
{
@@ -63,6 +66,7 @@ public sealed class GalaxyDriverInfrastructureTests
// ===== Driver.Galaxy-007 regression: Dispose cancels the dispose CTS =====
/// <summary>Verifies that Dispose sets disposed flag and blocks further capability calls.</summary>
[Fact]
public async Task Dispose_SetsDisposedFlag_BlockingFurtherCapabilityCalls()
{
@@ -76,6 +80,7 @@ public sealed class GalaxyDriverInfrastructureTests
driver.SubscribeAsync(["Tag.A"], TimeSpan.Zero, CancellationToken.None));
}
/// <summary>Verifies that DisposeAsync can be awaited without deadlock.</summary>
[Fact]
public async Task DisposeAsync_CanBeAwaitedWithoutDeadlock()
{
@@ -87,6 +92,7 @@ public sealed class GalaxyDriverInfrastructureTests
// ===== Driver.Galaxy-013 regression: ReplayOnSessionLost gates the replay step =====
/// <summary>Verifies that ReplayOnSessionLost=false skips resubscription on reconnect.</summary>
[Fact]
public async Task ReplayOnSessionLost_False_SkipsResubscribeBulk()
{
@@ -116,6 +122,7 @@ public sealed class GalaxyDriverInfrastructureTests
"ReplayOnSessionLost=false must skip the re-SubscribeBulk fan-out on reconnect");
}
/// <summary>Verifies that ReplayOnSessionLost=true runs resubscription on reconnect.</summary>
[Fact]
public async Task ReplayOnSessionLost_True_RunsResubscribeBulk()
{
@@ -137,12 +144,18 @@ public sealed class GalaxyDriverInfrastructureTests
"default ReplayOnSessionLost=true must re-issue SubscribeBulk after a transport drop");
}
/// <summary>Tracks subscription calls for replay testing.</summary>
private sealed class ReplayCountingSubscriber : IGalaxySubscriber
{
private readonly Channel<MxEvent> _stream = Channel.CreateUnbounded<MxEvent>();
private int _nextHandle = 1;
/// <summary>Gets the count of subscription calls.</summary>
public int SubscribeCalls;
/// <summary>Subscribes to multiple tags and counts the call.</summary>
/// <param name="fullReferences">List of tag addresses to subscribe to.</param>
/// <param name="bufferedUpdateIntervalMs">Buffered update interval in milliseconds.</param>
/// <param name="cancellationToken">Cancellation token.</param>
public Task<IReadOnlyList<SubscribeResult>> SubscribeBulkAsync(
IReadOnlyList<string> fullReferences, int bufferedUpdateIntervalMs, CancellationToken cancellationToken)
{
@@ -156,15 +169,21 @@ public sealed class GalaxyDriverInfrastructureTests
return Task.FromResult<IReadOnlyList<SubscribeResult>>(results);
}
/// <summary>Unsubscribes from multiple tags.</summary>
/// <param name="itemHandles">List of subscription handles to unsubscribe.</param>
/// <param name="cancellationToken">Cancellation token.</param>
public Task UnsubscribeBulkAsync(IReadOnlyList<int> itemHandles, CancellationToken cancellationToken)
=> Task.CompletedTask;
/// <summary>Streams subscription events.</summary>
/// <param name="cancellationToken">Cancellation token.</param>
public IAsyncEnumerable<MxEvent> StreamEventsAsync(CancellationToken cancellationToken)
=> _stream.Reader.ReadAllAsync(cancellationToken);
}
// ===== Driver.Galaxy-013 regression: ReinitializeAsync rejects unsupported reapply =====
/// <summary>Verifies that ReinitializeAsync rejects non-equivalent config changes.</summary>
[Fact]
public async Task ReinitializeAsync_RejectsNonEquivalentConfigChange()
{
@@ -183,6 +202,7 @@ public sealed class GalaxyDriverInfrastructureTests
await driver.ReinitializeAsync(newConfig, CancellationToken.None));
}
/// <summary>Verifies that ReinitializeAsync accepts equivalent config.</summary>
[Fact]
public async Task ReinitializeAsync_AcceptsEquivalentConfig()
{
@@ -202,10 +222,15 @@ public sealed class GalaxyDriverInfrastructureTests
// ===== Minimal IGalaxySubscriber fake that returns empty results for subscribe calls =====
/// <summary>No-op subscriber that returns empty results for testing.</summary>
private sealed class NoOpSubscriber : IGalaxySubscriber
{
private readonly Channel<MxEvent> _stream = Channel.CreateUnbounded<MxEvent>();
/// <summary>Subscribes to multiple tags (no-op).</summary>
/// <param name="fullReferences">List of tag addresses to subscribe to.</param>
/// <param name="bufferedUpdateIntervalMs">Buffered update interval in milliseconds.</param>
/// <param name="cancellationToken">Cancellation token.</param>
public Task<IReadOnlyList<SubscribeResult>> SubscribeBulkAsync(
IReadOnlyList<string> fullReferences, int bufferedUpdateIntervalMs, CancellationToken cancellationToken)
{
@@ -218,9 +243,14 @@ public sealed class GalaxyDriverInfrastructureTests
return Task.FromResult<IReadOnlyList<SubscribeResult>>(results);
}
/// <summary>Unsubscribes from multiple tags (no-op).</summary>
/// <param name="itemHandles">List of subscription handles to unsubscribe.</param>
/// <param name="cancellationToken">Cancellation token.</param>
public Task UnsubscribeBulkAsync(IReadOnlyList<int> itemHandles, CancellationToken cancellationToken)
=> Task.CompletedTask;
/// <summary>Streams subscription events (no-op).</summary>
/// <param name="cancellationToken">Cancellation token.</param>
public IAsyncEnumerable<MxEvent> StreamEventsAsync(CancellationToken cancellationToken)
=> _stream.Reader.ReadAllAsync(cancellationToken);
}