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
@@ -17,12 +17,20 @@ public sealed class PerPlatformProbeWatcherTests
{
private sealed class FakeSubscriber : IGalaxySubscriber
{
/// <summary>Gets a list of all subscribe requests made to the subscriber.</summary>
public List<List<string>> Subscribes { get; } = [];
/// <summary>Gets the buffered update intervals used in each subscribe request.</summary>
public List<int> SubscribeIntervalsMs { get; } = [];
/// <summary>Gets a list of all unsubscribe requests made to the subscriber.</summary>
public List<List<int>> Unsubscribes { get; } = [];
private int _nextHandle = 1;
/// <summary>Gets a mapping of tag addresses to their assigned item handles.</summary>
public Dictionary<string, int> HandleByAddress { get; } = new(StringComparer.OrdinalIgnoreCase);
/// <summary>Simulates a bulk subscribe operation by generating handles for each reference.</summary>
/// <param name="fullReferences">The list of tag addresses to subscribe to.</param>
/// <param name="bufferedUpdateIntervalMs">The buffered update interval in milliseconds.</param>
/// <param name="cancellationToken">The cancellation token for the operation.</param>
public Task<IReadOnlyList<SubscribeResult>> SubscribeBulkAsync(
IReadOnlyList<string> fullReferences, int bufferedUpdateIntervalMs, CancellationToken cancellationToken)
{
@@ -43,12 +51,17 @@ public sealed class PerPlatformProbeWatcherTests
return Task.FromResult<IReadOnlyList<SubscribeResult>>(results);
}
/// <summary>Simulates a bulk unsubscribe operation by recording the handles.</summary>
/// <param name="itemHandles">The list of item handles to unsubscribe.</param>
/// <param name="cancellationToken">The cancellation token for the operation.</param>
public Task UnsubscribeBulkAsync(IReadOnlyList<int> itemHandles, CancellationToken cancellationToken)
{
Unsubscribes.Add([.. itemHandles]);
return Task.CompletedTask;
}
/// <summary>Returns an empty event stream for testing.</summary>
/// <param name="cancellationToken">The cancellation token for the operation.</param>
public IAsyncEnumerable<MxEvent> StreamEventsAsync(CancellationToken cancellationToken)
=> Empty();
@@ -59,6 +72,7 @@ public sealed class PerPlatformProbeWatcherTests
}
}
/// <summary>Verifies that syncing platforms subscribes to the ScanState address for each platform.</summary>
[Fact]
public async Task SyncPlatformsAsync_SubscribesScanStateAddressForEachPlatform()
{
@@ -73,6 +87,7 @@ public sealed class PerPlatformProbeWatcherTests
watcher.WatchedPlatforms.OrderBy(x => x).ShouldBe(new[] { "PlatformA", "PlatformB" });
}
/// <summary>Verifies that the default buffered interval is zero, matching gateway cadence.</summary>
[Fact]
public async Task SyncPlatformsAsync_DefaultBufferedIntervalIsZero_GwCadence()
{
@@ -84,6 +99,7 @@ public sealed class PerPlatformProbeWatcherTests
subscriber.SubscribeIntervalsMs.ShouldHaveSingleItem().ShouldBe(0);
}
/// <summary>Verifies that a configured buffered interval is forwarded to the gateway.</summary>
[Fact]
public async Task SyncPlatformsAsync_ConfiguredBufferedInterval_IsForwardedToGw()
{
@@ -99,6 +115,7 @@ public sealed class PerPlatformProbeWatcherTests
subscriber.SubscribeIntervalsMs.ShouldHaveSingleItem().ShouldBe(250);
}
/// <summary>Verifies that the constructor rejects negative buffered intervals.</summary>
[Fact]
public void Constructor_RejectsNegativeBufferedInterval()
{
@@ -107,6 +124,7 @@ public sealed class PerPlatformProbeWatcherTests
new PerPlatformProbeWatcher(subscriber, new HostStatusAggregator(), bufferedUpdateIntervalMs: -1));
}
/// <summary>Verifies that syncing the same platform set twice does not resubscribe.</summary>
[Fact]
public async Task SyncPlatformsAsync_SameSetTwice_DoesNotResubscribe()
{
@@ -120,6 +138,7 @@ public sealed class PerPlatformProbeWatcherTests
subscriber.Subscribes.Count.ShouldBe(1);
}
/// <summary>Verifies that removed platforms are unsubscribed and dropped from the aggregator.</summary>
[Fact]
public async Task SyncPlatformsAsync_RemovedPlatforms_AreUnsubscribed_AndDroppedFromAggregator()
{
@@ -142,6 +161,10 @@ public sealed class PerPlatformProbeWatcherTests
aggregator.Snapshot().Any(s => s.HostName == "B").ShouldBeFalse();
}
/// <summary>Verifies that DecodeState correctly decodes ScanState values and quality bytes across multiple pin configurations.</summary>
/// <param name="value">The probe value to decode.</param>
/// <param name="qualityByte">The OPC UA quality byte indicating data validity.</param>
/// <param name="expected">The expected decoded host state.</param>
[Theory]
[InlineData(true, (byte)192, HostState.Running)]
[InlineData(false, (byte)192, HostState.Stopped)]
@@ -159,6 +182,7 @@ public sealed class PerPlatformProbeWatcherTests
PerPlatformProbeWatcher.DecodeState(value, qualityByte).ShouldBe(expected);
}
/// <summary>Verifies that a running probe value is routed to the aggregator.</summary>
[Fact]
public async Task OnProbeValueChanged_Running_RoutesToAggregator()
{
@@ -173,6 +197,7 @@ public sealed class PerPlatformProbeWatcherTests
snap.State.ShouldBe(HostState.Running);
}
/// <summary>Verifies that a probe value with bad quality routes as unknown state.</summary>
[Fact]
public async Task OnProbeValueChanged_BadQuality_RoutesUnknown()
{
@@ -186,6 +211,7 @@ public sealed class PerPlatformProbeWatcherTests
aggregator.Snapshot().Single(s => s.HostName == "PlatformA").State.ShouldBe(HostState.Unknown);
}
/// <summary>Verifies that foreign probe references are silently dropped.</summary>
[Fact]
public async Task OnProbeValueChanged_ForeignReference_IsSilentlyDropped()
{
@@ -204,6 +230,7 @@ public sealed class PerPlatformProbeWatcherTests
aggregator.Snapshot().Any(s => s.HostName == "Stranger").ShouldBeFalse();
}
/// <summary>Verifies that dispose unsubscribes all tracked platforms.</summary>
[Fact]
public async Task Dispose_UnsubscribesAllTrackedPlatforms()
{