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
@@ -10,9 +10,16 @@ public sealed class PollGroupEngineTests
{
private sealed class FakeSource
{
/// <summary>Gets the dictionary of test values keyed by reference.</summary>
public ConcurrentDictionary<string, object?> Values { get; } = new();
/// <summary>Gets or sets the number of read operations performed.</summary>
public int ReadCount;
/// <summary>Simulates reading values from the source.</summary>
/// <param name="refs">The references to read.</param>
/// <param name="ct">Cancellation token.</param>
/// <returns>A task returning the data value snapshots.</returns>
public Task<IReadOnlyList<DataValueSnapshot>> ReadAsync(
IReadOnlyList<string> refs, CancellationToken ct)
{
@@ -27,6 +34,7 @@ public sealed class PollGroupEngineTests
}
}
/// <summary>Verifies that the initial poll forces an event for every subscribed tag.</summary>
[Fact]
public async Task Initial_poll_force_raises_every_subscribed_tag()
{
@@ -45,6 +53,7 @@ public sealed class PollGroupEngineTests
engine.Unsubscribe(handle).ShouldBeTrue();
}
/// <summary>Verifies that unchanged values are only raised once.</summary>
[Fact]
public async Task Unchanged_value_raises_only_once()
{
@@ -62,6 +71,7 @@ public sealed class PollGroupEngineTests
events.Count.ShouldBe(1);
}
/// <summary>Verifies that value changes raise new events.</summary>
[Fact]
public async Task Value_change_raises_new_event()
{
@@ -81,6 +91,7 @@ public sealed class PollGroupEngineTests
events.Last().Item3.Value.ShouldBe(2);
}
/// <summary>Verifies that unsubscribe halts the polling loop.</summary>
[Fact]
public async Task Unsubscribe_halts_the_loop()
{
@@ -101,6 +112,7 @@ public sealed class PollGroupEngineTests
events.Count.ShouldBe(afterUnsub);
}
/// <summary>Verifies that intervals below the configured floor are clamped.</summary>
[Fact]
public async Task Interval_below_floor_is_clamped()
{
@@ -121,6 +133,7 @@ public sealed class PollGroupEngineTests
events.Count.ShouldBe(1);
}
/// <summary>Verifies that multiple subscriptions operate independently.</summary>
[Fact]
public async Task Multiple_subscriptions_are_independent()
{
@@ -151,6 +164,7 @@ public sealed class PollGroupEngineTests
engine.Unsubscribe(hb);
}
/// <summary>Verifies that reader exceptions do not crash the polling loop.</summary>
[Fact]
public async Task Reader_exception_does_not_crash_loop()
{
@@ -180,6 +194,7 @@ public sealed class PollGroupEngineTests
events.Count.ShouldBeGreaterThanOrEqualTo(1);
}
/// <summary>Verifies that unsubscribing an unknown handle returns false.</summary>
[Fact]
public async Task Unsubscribe_unknown_handle_returns_false()
{
@@ -190,6 +205,7 @@ public sealed class PollGroupEngineTests
engine.Unsubscribe(foreign).ShouldBeFalse();
}
/// <summary>Verifies that the active subscription count tracks lifecycle changes.</summary>
[Fact]
public async Task ActiveSubscriptionCount_tracks_lifecycle()
{
@@ -208,6 +224,7 @@ public sealed class PollGroupEngineTests
engine.ActiveSubscriptionCount.ShouldBe(0);
}
/// <summary>Verifies that disposing the engine cancels all active subscriptions.</summary>
[Fact]
public async Task DisposeAsync_cancels_all_subscriptions()
{
@@ -446,6 +463,7 @@ public sealed class PollGroupEngineTests
private sealed record DummyHandle : ISubscriptionHandle
{
/// <summary>Gets a diagnostic identifier for this handle.</summary>
public string DiagnosticId => "dummy";
}