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
@@ -11,6 +11,7 @@ namespace ZB.MOM.WW.OtOpcUa.Core.Abstractions.Tests.Historian;
/// </summary>
public sealed class IHistorianDataSourceContractTests
{
/// <summary>Verifies that the interface lives in the root namespace.</summary>
[Fact]
public void Interface_LivesInRootNamespace()
{
@@ -18,6 +19,7 @@ public sealed class IHistorianDataSourceContractTests
.ShouldBe("ZB.MOM.WW.OtOpcUa.Core.Abstractions");
}
/// <summary>Verifies that the interface is public.</summary>
[Fact]
public void Interface_IsPublic()
{
@@ -25,6 +27,7 @@ public sealed class IHistorianDataSourceContractTests
typeof(IHistorianDataSource).IsInterface.ShouldBeTrue();
}
/// <summary>Verifies that the interface extends IDisposable.</summary>
[Fact]
public void Interface_ExtendsIDisposable()
{
@@ -32,6 +35,9 @@ public sealed class IHistorianDataSourceContractTests
.ShouldBeTrue("data sources own backend connections; the server disposes them on shutdown");
}
/// <summary>Verifies that read methods return the expected task shape.</summary>
/// <param name="methodName">The name of the interface method to inspect.</param>
/// <param name="expectedReturnType">The expected Task return type of the method.</param>
[Theory]
[InlineData("ReadRawAsync", typeof(Task<HistoryReadResult>))]
[InlineData("ReadProcessedAsync", typeof(Task<HistoryReadResult>))]
@@ -44,6 +50,7 @@ public sealed class IHistorianDataSourceContractTests
method!.ReturnType.ShouldBe(expectedReturnType);
}
/// <summary>Verifies that GetHealthSnapshot is synchronous.</summary>
[Fact]
public void GetHealthSnapshot_IsSynchronous()
{
@@ -52,6 +59,7 @@ public sealed class IHistorianDataSourceContractTests
method!.ReturnType.ShouldBe(typeof(HistorianHealthSnapshot));
}
/// <summary>Verifies that HealthSnapshot accepts an empty cluster node list.</summary>
[Fact]
public void HealthSnapshot_AcceptsEmptyClusterNodeList()
{
@@ -72,6 +80,7 @@ public sealed class IHistorianDataSourceContractTests
snapshot.Nodes.ShouldBeEmpty();
}
/// <summary>Verifies that HealthSnapshot preserves cluster nodes.</summary>
[Fact]
public void HealthSnapshot_PreservesClusterNodes()
{
@@ -101,6 +110,7 @@ public sealed class IHistorianDataSourceContractTests
snapshot.Nodes[0].ShouldBe(node);
}
/// <summary>Verifies that ClusterNodeState records are equal by value.</summary>
[Fact]
public void ClusterNodeState_RecordEqualityByValue()
{
@@ -110,6 +120,7 @@ public sealed class IHistorianDataSourceContractTests
a.ShouldBe(b);
}
/// <summary>Verifies that ClusterNodeState instances are distinct by any field.</summary>
[Fact]
public void ClusterNodeState_DistinctByAnyField()
{
@@ -127,6 +138,9 @@ public sealed class IHistorianDataSourceContractTests
/// (see <c>WonderwareHistorianClient</c> / <c>HistorianDataSource</c> usage). This test
/// pins both shapes so accidental changes are caught.
/// </summary>
/// <param name="methodName">The name of the method to test.</param>
/// <param name="parameterName">The name of the parameter to verify.</param>
/// <param name="expectedType">The expected parameter type.</param>
[Theory]
[InlineData("ReadRawAsync", "maxValuesPerNode", typeof(uint))]
[InlineData("ReadEventsAsync", "maxEvents", typeof(int))]
@@ -139,6 +153,10 @@ public sealed class IHistorianDataSourceContractTests
parameter!.ParameterType.ShouldBe(expectedType);
}
/// <summary>Verifies that history provider max parameters have the expected type.</summary>
/// <param name="methodName">The name of the method to test.</param>
/// <param name="parameterName">The name of the parameter to verify.</param>
/// <param name="expectedType">The expected parameter type.</param>
[Theory]
[InlineData("ReadRawAsync", "maxValuesPerNode", typeof(uint))]
[InlineData("ReadEventsAsync", "maxEvents", typeof(int))]
@@ -159,6 +177,7 @@ public sealed class IHistorianDataSourceContractTests
/// historian must implement them). This test pins the asymmetry so an implementer cannot
/// accidentally collapse the two surfaces and so the documented rationale stays load-bearing.
/// </summary>
/// <param name="methodName">The name of the optional method to check.</param>
[Theory]
[InlineData("ReadAtTimeAsync")]
[InlineData("ReadEventsAsync")]