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
@@ -41,6 +41,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that AddSubscriptionCommand adds a new subscription to the active list.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task AddSubscriptionCommand_AddsItem()
{
@@ -58,6 +59,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that RemoveSubscriptionCommand removes selected subscription.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task RemoveSubscriptionCommand_RemovesItem()
{
@@ -83,6 +85,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that DataChanged event updates the matching subscription row.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task DataChanged_UpdatesMatchingRow()
{
@@ -98,6 +101,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that DataChanged event does not update non-matching subscription rows.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task DataChanged_DoesNotUpdateNonMatchingRow()
{
@@ -146,6 +150,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that AddSubscriptionForNodeAsync adds a subscription.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task AddSubscriptionForNodeAsync_AddsSubscription()
{
@@ -160,6 +165,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that AddSubscriptionForNodeAsync skips duplicate subscriptions.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task AddSubscriptionForNodeAsync_SkipsDuplicate()
{
@@ -173,6 +179,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that AddSubscriptionForNodeAsync does nothing when disconnected.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task AddSubscriptionForNodeAsync_DoesNothing_WhenDisconnected()
{
@@ -185,6 +192,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that GetSubscribedNodeIds returns all active subscription node IDs.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task GetSubscribedNodeIds_ReturnsActiveNodeIds()
{
@@ -200,6 +208,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that RestoreSubscriptionsAsync subscribes to all provided node IDs.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task RestoreSubscriptionsAsync_SubscribesAllNodes()
{
@@ -212,6 +221,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that ValidateAndWriteAsync returns true on successful write.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task ValidateAndWriteAsync_SuccessReturnsTrue()
{
@@ -227,6 +237,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that ValidateAndWriteAsync returns false when value parsing fails.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task ValidateAndWriteAsync_ParseFailureReturnsFalse()
{
@@ -242,6 +253,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that ValidateAndWriteAsync returns false when write fails.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task ValidateAndWriteAsync_WriteFailureReturnsFalse()
{
@@ -256,6 +268,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that ValidateAndWriteAsync returns false when status is bad.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task ValidateAndWriteAsync_BadStatusReturnsFalse()
{
@@ -270,6 +283,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that AddSubscriptionRecursiveAsync subscribes a variable directly.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task AddSubscriptionRecursiveAsync_SubscribesVariableDirectly()
{
@@ -282,6 +296,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that AddSubscriptionRecursiveAsync browses objects and subscribes variable children.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task AddSubscriptionRecursiveAsync_BrowsesObjectAndSubscribesVariableChildren()
{
@@ -302,6 +317,7 @@ public class SubscriptionsViewModelTests
/// Regression test for Client.UI-006 — when SubscribeAsync throws, the failure must be surfaced
/// to the operator via the view model's StatusMessage rather than silently swallowed.
/// </summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task AddSubscription_OnFailure_SurfacesStatusMessage()
{
@@ -320,6 +336,7 @@ public class SubscriptionsViewModelTests
/// Regression test for Client.UI-006 — silent swallow when adding a subscription for a node
/// (the context-menu helper) must also surface a status to the operator.
/// </summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task AddSubscriptionForNodeAsync_OnFailure_SurfacesStatusMessage()
{
@@ -334,6 +351,7 @@ public class SubscriptionsViewModelTests
}
/// <summary>Verifies that AddSubscriptionRecursiveAsync recurses through nested objects.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task AddSubscriptionRecursiveAsync_RecursesNestedObjects()
{