docs(tests): fix CommentChecker findings across tests/ — 13,392 → 0 (repo-wide scan clean)

Comment/XML-doc changes only:
- add summaries to ~10k test methods, fixtures, fakes and helpers
  (+ <param> on theories, <returns> on async Task methods,
  <inheritdoc/> on interface implementations the checker can resolve)
- strip ~2.6k project-tracking references (WP*, P*-*, row-NN, Task N,
  #NN, Component-0NN) from comments, keeping the explanatory text;
  reword false positives in comments only
- real docs on fakes implementing BCL/library interfaces
  (IDisposable, ILogger, IOptionsMonitor, IAsyncLifetime)
- reword the last 5 src/ false positives (CWE-1236, failures-1,
  year-0001, M365)

Only non-comment edits: four one-line nested classes split across lines
so members can carry docs. Build 0 errors / 0 warnings.
This commit is contained in:
Joseph Doherty
2026-10-07 15:05:49 -04:00
parent 0ffd4bdbea
commit 513fa1aa16
998 changed files with 17896 additions and 2395 deletions
@@ -25,6 +25,7 @@ public class SiteReconciliationActorTests : TestKit, IDisposable
private readonly SiteStorageService _storage;
private readonly TestLocalDb _localDb;
/// <summary>Initializes the test class with a fresh local database and the actor-system fixtures.</summary>
public SiteReconciliationActorTests()
{
// SiteStorageService takes an ILocalDb now; LocalDb has no in-memory mode, so the
@@ -35,6 +36,7 @@ public class SiteReconciliationActorTests : TestKit, IDisposable
_storage.InitializeAsync().GetAwaiter().GetResult();
}
/// <inheritdoc />
void IDisposable.Dispose()
{
// Shut the actor system down FIRST: a reconcile continuation may still be
@@ -62,6 +64,8 @@ public class SiteReconciliationActorTests : TestKit, IDisposable
TimeSpan.FromMilliseconds(50), // initial delay — fast for tests
askTimeout ?? TimeSpan.FromSeconds(5)))); // ask timeout
/// <summary>Verifies that an instance missing at the site is fetched from central and stored.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task MissingInstance_IsFetchedAndStored()
{
@@ -101,6 +105,8 @@ public class SiteReconciliationActorTests : TestKit, IDisposable
Assert.Equal("tok-b", call.Token);
}
/// <summary>Verifies that a stale instance is refreshed from central.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task StaleInstance_IsRefreshed()
{
@@ -134,6 +140,8 @@ public class SiteReconciliationActorTests : TestKit, IDisposable
Assert.Equal("tok-a", call.Token);
}
/// <summary>Verifies that an orphaned instance is logged but not deleted.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Orphan_IsLoggedNotDeleted()
{
@@ -163,6 +171,8 @@ public class SiteReconciliationActorTests : TestKit, IDisposable
Assert.Empty(fetcher.Calls);
}
/// <summary>Verifies that no fetch is made when there is no gap between central and the site.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task NoGap_DoesNotFetch()
{
@@ -181,6 +191,8 @@ public class SiteReconciliationActorTests : TestKit, IDisposable
Assert.Empty(fetcher.Calls);
}
/// <summary>Verifies that a fetch failure for one item does not abort the remaining items.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task PerItemFetchFailure_DoesNotAbortTheRest()
{
@@ -216,6 +228,8 @@ public class SiteReconciliationActorTests : TestKit, IDisposable
ExpectNoMsg(TimeSpan.FromMilliseconds(300));
}
/// <summary>Verifies that a superseded item is skipped quietly while the other items are still applied.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task SupersededItem_IsSkippedQuietly_OthersStillApply()
{
@@ -259,6 +273,7 @@ public class SiteReconciliationActorTests : TestKit, IDisposable
ExpectNoMsg(TimeSpan.FromMilliseconds(300));
}
/// <summary>Verifies that the actor survives a failed ask to central.</summary>
[Fact]
public void CentralAskFails_ActorSurvives()
{
@@ -289,10 +304,14 @@ public class SiteReconciliationActorTests : TestKit, IDisposable
private sealed class FakeConfigFetcher : IDeploymentConfigFetcher
{
private readonly Func<string, Task<string>> _behavior;
/// <summary>Gets the recorded fetch calls (base URL, deployment id, token).</summary>
public ConcurrentQueue<(string BaseUrl, string DeploymentId, string Token)> Calls { get; } = new();
/// <summary>Initializes the fake with the per-deployment-id behavior to run on each fetch.</summary>
/// <param name="behavior">Maps a deployment id to the fetch result.</param>
public FakeConfigFetcher(Func<string, Task<string>> behavior) => _behavior = behavior;
/// <inheritdoc />
public async Task<string> FetchAsync(
string centralFetchBaseUrl, string deploymentId, string token, CancellationToken ct)
{
@@ -305,11 +324,23 @@ public class SiteReconciliationActorTests : TestKit, IDisposable
/// <summary>Thread-safe capturing logger so tests can assert on emitted warnings.</summary>
private sealed class CapturingLogger<T> : ILogger<T>
{
/// <summary>Gets the captured log entries (level and formatted message).</summary>
public ConcurrentQueue<(LogLevel Level, string Message)> Entries { get; } = new();
/// <inheritdoc />
IDisposable? ILogger.BeginScope<TState>(TState state) => null;
/// <summary>Reports every log level as enabled.</summary>
/// <param name="logLevel">The log level.</param>
/// <returns>Always true.</returns>
public bool IsEnabled(LogLevel logLevel) => true;
/// <summary>Records the log entry for later assertions.</summary>
/// <typeparam name="TState">The log state type.</typeparam>
/// <param name="logLevel">The log level.</param>
/// <param name="eventId">The event id.</param>
/// <param name="state">The log state.</param>
/// <param name="exception">The associated exception, if any.</param>
/// <param name="formatter">Formats the state and exception into a message.</param>
public void Log<TState>(
LogLevel logLevel, EventId eventId, TState state, Exception? exception,
Func<TState, Exception?, string> formatter)