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
@@ -41,6 +41,8 @@ public class SiteEnumeratorTests
return services.BuildServiceProvider();
}
/// <summary>Verifies that sites with a NodeA address are projected and sites with a blank address are skipped.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task EnumerateAsync_ProjectsSitesWithNodeAAddress_AndSkipsBlankOnes()
{
@@ -60,6 +62,8 @@ public class SiteEnumeratorTests
Assert.Equal("http://site-a:8083", entry.GrpcEndpoint);
}
/// <summary>Verifies that a site with a null NodeA address is skipped.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task EnumerateAsync_SkipsNullNodeAAddress()
{
@@ -76,10 +80,12 @@ public class SiteEnumeratorTests
Assert.Empty(result);
}
/// <summary>Verifies that a site with distinct NodeA and NodeB addresses projects NodeB as the fallback endpoint.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task EnumerateAsync_BothAddresses_ProjectsNodeBAsFallback()
{
// Task 18: a site with both NodeA and a DISTINCT NodeB yields
// A site with both NodeA and a DISTINCT NodeB yields
// SiteEntry(primary=NodeA, FallbackGrpcEndpoint=NodeB).
var repository = Substitute.For<ISiteRepository>();
repository.GetAllSitesAsync(Arg.Any<CancellationToken>()).Returns(new List<SiteEntity>
@@ -95,10 +101,12 @@ public class SiteEnumeratorTests
Assert.Equal("http://site-b:8083", entry.FallbackGrpcEndpoint);
}
/// <summary>Verifies that a site with only a NodeB address is not skipped and has no fallback endpoint.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task EnumerateAsync_OnlyNodeB_IsNotSkipped_AndHasNoFallback()
{
// Task 18: a site with a blank NodeA but a valid NodeB is no longer
// A site with a blank NodeA but a valid NodeB is no longer
// skipped — NodeB becomes the primary and there is no separate fallback.
var repository = Substitute.For<ISiteRepository>();
repository.GetAllSitesAsync(Arg.Any<CancellationToken>()).Returns(new List<SiteEntity>
@@ -114,6 +122,8 @@ public class SiteEnumeratorTests
Assert.Null(entry.FallbackGrpcEndpoint);
}
/// <summary>Verifies that enumeration returns an empty list when there are no sites.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task EnumerateAsync_ReturnsEmpty_WhenNoSites()
{