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
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:
+30
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user