docs: complete XML doc comments via fixdocs (2757 to 131 findings)

Add missing <returns>/<param>/<summary>/<typeparam> tags and clean up
misused inheritdoc across 481 files so the documented API surface is
complete. Documentation-only (zero code lines changed). The 131 remaining
findings are inheritdoc-style warnings deliberately left to preserve
hand-written implementation rationale (plan-decision notes, race-condition
explanations).
This commit is contained in:
Joseph Doherty
2026-06-03 12:34:34 -04:00
parent c6d9b20d9f
commit bd6c0b4d3d
481 changed files with 2550 additions and 1668 deletions
@@ -27,10 +27,7 @@ public sealed class PerPlatformProbeWatcherTests
/// <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>
/// <inheritdoc />
public Task<IReadOnlyList<SubscribeResult>> SubscribeBulkAsync(
IReadOnlyList<string> fullReferences, int bufferedUpdateIntervalMs, CancellationToken cancellationToken)
{
@@ -51,17 +48,14 @@ 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>
/// <inheritdoc />
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>
/// <inheritdoc />
public IAsyncEnumerable<MxEvent> StreamEventsAsync(CancellationToken cancellationToken)
=> Empty();
@@ -73,6 +67,7 @@ public sealed class PerPlatformProbeWatcherTests
}
/// <summary>Verifies that syncing platforms subscribes to the ScanState address for each platform.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task SyncPlatformsAsync_SubscribesScanStateAddressForEachPlatform()
{
@@ -88,6 +83,7 @@ public sealed class PerPlatformProbeWatcherTests
}
/// <summary>Verifies that the default buffered interval is zero, matching gateway cadence.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task SyncPlatformsAsync_DefaultBufferedIntervalIsZero_GwCadence()
{
@@ -100,6 +96,7 @@ public sealed class PerPlatformProbeWatcherTests
}
/// <summary>Verifies that a configured buffered interval is forwarded to the gateway.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task SyncPlatformsAsync_ConfiguredBufferedInterval_IsForwardedToGw()
{
@@ -125,6 +122,7 @@ public sealed class PerPlatformProbeWatcherTests
}
/// <summary>Verifies that syncing the same platform set twice does not resubscribe.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task SyncPlatformsAsync_SameSetTwice_DoesNotResubscribe()
{
@@ -139,6 +137,7 @@ public sealed class PerPlatformProbeWatcherTests
}
/// <summary>Verifies that removed platforms are unsubscribed and dropped from the aggregator.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task SyncPlatformsAsync_RemovedPlatforms_AreUnsubscribed_AndDroppedFromAggregator()
{
@@ -183,6 +182,7 @@ public sealed class PerPlatformProbeWatcherTests
}
/// <summary>Verifies that a running probe value is routed to the aggregator.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task OnProbeValueChanged_Running_RoutesToAggregator()
{
@@ -198,6 +198,7 @@ public sealed class PerPlatformProbeWatcherTests
}
/// <summary>Verifies that a probe value with bad quality routes as unknown state.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task OnProbeValueChanged_BadQuality_RoutesUnknown()
{
@@ -212,6 +213,7 @@ public sealed class PerPlatformProbeWatcherTests
}
/// <summary>Verifies that foreign probe references are silently dropped.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task OnProbeValueChanged_ForeignReference_IsSilentlyDropped()
{
@@ -231,6 +233,7 @@ public sealed class PerPlatformProbeWatcherTests
}
/// <summary>Verifies that dispose unsubscribes all tracked platforms.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Dispose_UnsubscribesAllTrackedPlatforms()
{