docs: backfill XML documentation across 756 files
v2-ci / build (push) Failing after 1m43s
v2-ci / unit-tests (tests/Core/ZB.MOM.WW.OtOpcUa.Cluster.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Runtime.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Security.Tests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (push) Has been skipped

Adds <summary>, <param>, <typeparam>, and <inheritdoc/> tags to public
members surfaced by commentchecker — resolves 5,847 of 5,869 issues
(99.6%) across three /fixdocs passes.
This commit is contained in:
Joseph Doherty
2026-05-28 08:10:17 -04:00
parent f9fc7dd2e1
commit 64e3fbe035
756 changed files with 9876 additions and 96 deletions
@@ -9,6 +9,7 @@ public sealed class GenerationSealedCacheTests : IDisposable
{
private readonly string _root = Path.Combine(Path.GetTempPath(), $"otopcua-sealed-{Guid.NewGuid():N}");
/// <summary>Cleans up temporary directory after test execution.</summary>
public void Dispose()
{
try
@@ -31,6 +32,7 @@ public sealed class GenerationSealedCacheTests : IDisposable
PayloadJson = payload,
};
/// <summary>Verifies that reading a snapshot on first boot with no existing snapshot throws.</summary>
[Fact]
public async Task FirstBoot_NoSnapshot_ReadThrows()
{
@@ -40,6 +42,7 @@ public sealed class GenerationSealedCacheTests : IDisposable
() => cache.ReadCurrentAsync("cluster-a"));
}
/// <summary>Verifies that sealed snapshots can be read back correctly.</summary>
[Fact]
public async Task SealThenRead_RoundTrips()
{
@@ -54,6 +57,7 @@ public sealed class GenerationSealedCacheTests : IDisposable
read.PayloadJson.ShouldBe("{\"hello\":\"world\"}");
}
/// <summary>Verifies that sealed files are marked read-only on disk.</summary>
[Fact]
public async Task SealedFile_IsReadOnly_OnDisk()
{
@@ -66,6 +70,7 @@ public sealed class GenerationSealedCacheTests : IDisposable
attrs.HasFlag(FileAttributes.ReadOnly).ShouldBeTrue("sealed file must be read-only");
}
/// <summary>Verifies that the current generation pointer advances when a new generation is sealed.</summary>
[Fact]
public async Task SealingTwoGenerations_PointerAdvances_ToLatest()
{
@@ -78,6 +83,7 @@ public sealed class GenerationSealedCacheTests : IDisposable
read.GenerationId.ShouldBe(2);
}
/// <summary>Verifies that prior generation files are preserved after a new seal.</summary>
[Fact]
public async Task PriorGenerationFile_Survives_AfterNewSeal()
{
@@ -90,6 +96,7 @@ public sealed class GenerationSealedCacheTests : IDisposable
File.Exists(Path.Combine(_root, "cluster-a", "2.db")).ShouldBeTrue();
}
/// <summary>Verifies that reading a corrupt sealed file fails safely.</summary>
[Fact]
public async Task CorruptSealedFile_ReadFailsClosed()
{
@@ -105,6 +112,7 @@ public sealed class GenerationSealedCacheTests : IDisposable
() => cache.ReadCurrentAsync("cluster-a"));
}
/// <summary>Verifies that reading with a missing sealed file fails safely.</summary>
[Fact]
public async Task MissingSealedFile_ReadFailsClosed()
{
@@ -120,6 +128,7 @@ public sealed class GenerationSealedCacheTests : IDisposable
() => cache.ReadCurrentAsync("cluster-a"));
}
/// <summary>Verifies that reading with a corrupt pointer file fails safely.</summary>
[Fact]
public async Task CorruptPointerFile_ReadFailsClosed()
{
@@ -133,6 +142,7 @@ public sealed class GenerationSealedCacheTests : IDisposable
() => cache.ReadCurrentAsync("cluster-a"));
}
/// <summary>Verifies that sealing the same generation twice is idempotent.</summary>
[Fact]
public async Task SealSameGenerationTwice_IsIdempotent()
{
@@ -144,6 +154,7 @@ public sealed class GenerationSealedCacheTests : IDisposable
read.PayloadJson.ShouldBe("{\"sample\":true}", "sealed file is immutable; second seal no-ops");
}
/// <summary>Verifies that independent clusters do not interfere with each other.</summary>
[Fact]
public async Task IndependentClusters_DoNotInterfere()
{