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:
@@ -18,14 +18,10 @@ public sealed class ModbusSubscriptionTests
|
||||
private sealed class FakeTransport : IModbusTransport
|
||||
{
|
||||
public readonly ushort[] HoldingRegisters = new ushort[256];
|
||||
/// <summary>Simulates connecting to the Modbus device.</summary>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public Task ConnectAsync(CancellationToken ct) => Task.CompletedTask;
|
||||
|
||||
/// <summary>Simulates sending a Modbus PDU.</summary>
|
||||
/// <param name="unitId">The Modbus unit ID.</param>
|
||||
/// <param name="pdu">The protocol data unit.</param>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public Task<byte[]> SendAsync(byte unitId, byte[] pdu, CancellationToken ct)
|
||||
{
|
||||
if (pdu[0] != 0x03) return Task.FromException<byte[]>(new NotSupportedException("FC not supported"));
|
||||
@@ -41,7 +37,8 @@ public sealed class ModbusSubscriptionTests
|
||||
}
|
||||
return Task.FromResult(resp);
|
||||
}
|
||||
/// <summary>Disposes the transport asynchronously.</summary>
|
||||
/// <summary>Disposes the fake transport. No-op in this test double.</summary>
|
||||
/// <returns>A completed value task.</returns>
|
||||
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
|
||||
}
|
||||
|
||||
@@ -53,6 +50,7 @@ public sealed class ModbusSubscriptionTests
|
||||
}
|
||||
|
||||
/// <summary>Verifies initial poll raises OnDataChange for every subscribed tag.</summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[Fact]
|
||||
public async Task Initial_poll_raises_OnDataChange_for_every_subscribed_tag()
|
||||
{
|
||||
@@ -75,6 +73,7 @@ public sealed class ModbusSubscriptionTests
|
||||
}
|
||||
|
||||
/// <summary>Verifies unchanged values do not raise after initial poll.</summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[Fact]
|
||||
public async Task Unchanged_values_do_not_raise_after_initial_poll()
|
||||
{
|
||||
@@ -93,6 +92,7 @@ public sealed class ModbusSubscriptionTests
|
||||
}
|
||||
|
||||
/// <summary>Verifies value change between polls raises OnDataChange.</summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[Fact]
|
||||
public async Task Value_change_between_polls_raises_OnDataChange()
|
||||
{
|
||||
@@ -114,6 +114,7 @@ public sealed class ModbusSubscriptionTests
|
||||
}
|
||||
|
||||
/// <summary>Verifies unsubscribe stops the polling loop.</summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[Fact]
|
||||
public async Task Unsubscribe_stops_the_polling_loop()
|
||||
{
|
||||
@@ -134,6 +135,7 @@ public sealed class ModbusSubscriptionTests
|
||||
}
|
||||
|
||||
/// <summary>Verifies SubscribeAsync floors intervals below 100ms.</summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[Fact]
|
||||
public async Task SubscribeAsync_floors_intervals_below_100ms()
|
||||
{
|
||||
@@ -154,6 +156,7 @@ public sealed class ModbusSubscriptionTests
|
||||
}
|
||||
|
||||
/// <summary>Verifies multiple subscriptions fire independently.</summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[Fact]
|
||||
public async Task Multiple_subscriptions_fire_independently()
|
||||
{
|
||||
@@ -196,6 +199,7 @@ public sealed class ModbusSubscriptionTests
|
||||
/// value steps up by 5 every poll (well over the deadband of 2) so every poll publishes,
|
||||
/// maximising contention on the cache.
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[Fact]
|
||||
public async Task Concurrent_deadband_subscriptions_do_not_corrupt_the_publish_cache()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user