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
@@ -18,6 +18,7 @@ public sealed class AbCipDriverCodeReviewRegressionTests
// ---- Driver.AbCip-001 — ReinitializeAsync must apply a changed config JSON ----
/// <summary>Tests that InitializeAsync applies devices and tags from the config JSON.</summary>
[Fact]
public async Task InitializeAsync_applies_devices_and_tags_from_the_config_json()
{
@@ -38,6 +39,7 @@ public sealed class AbCipDriverCodeReviewRegressionTests
drv.GetHealth().State.ShouldBe(DriverState.Healthy);
}
/// <summary>Tests that ReinitializeAsync with changed config JSON picks up the new device.</summary>
[Fact]
public async Task ReinitializeAsync_with_a_changed_config_json_picks_up_the_new_device()
{
@@ -60,6 +62,7 @@ public sealed class AbCipDriverCodeReviewRegressionTests
drv.GetDeviceState(Device).ShouldBeNull();
}
/// <summary>Tests that InitializeAsync with blank JSON keeps construction-time options.</summary>
[Fact]
public async Task InitializeAsync_with_blank_json_keeps_construction_time_options()
{
@@ -78,6 +81,7 @@ public sealed class AbCipDriverCodeReviewRegressionTests
// ---- Driver.AbCip-003 — declaration-only whole-UDT grouping is opt-in ----
/// <summary>Tests that whole UDT grouping is off by default so members read per tag.</summary>
[Fact]
public async Task Whole_udt_grouping_is_off_by_default_so_members_read_per_tag()
{
@@ -107,6 +111,7 @@ public sealed class AbCipDriverCodeReviewRegressionTests
factory.Tags.ShouldNotContainKey("Motor");
}
/// <summary>Tests that planner forms no groups when declaration-only grouping is disabled.</summary>
[Fact]
public void Planner_forms_no_groups_when_declaration_only_grouping_is_disabled()
{
@@ -131,6 +136,7 @@ public sealed class AbCipDriverCodeReviewRegressionTests
// ---- Driver.AbCip-008 — ShutdownAsync awaits probe loops; reads are concurrency-safe ----
/// <summary>Tests that ShutdownAsync awaits the probe loop before returning.</summary>
[Fact]
public async Task ShutdownAsync_awaits_the_probe_loop_before_returning()
{
@@ -155,6 +161,7 @@ public sealed class AbCipDriverCodeReviewRegressionTests
drv.DeviceCount.ShouldBe(0);
}
/// <summary>Tests that ShutdownAsync is idempotent.</summary>
[Fact]
public async Task ShutdownAsync_is_idempotent()
{
@@ -168,6 +175,7 @@ public sealed class AbCipDriverCodeReviewRegressionTests
await Should.NotThrowAsync(() => drv.ShutdownAsync(CancellationToken.None));
}
/// <summary>Tests that concurrent first reads of the same tag do not corrupt the runtime cache.</summary>
[Fact]
public async Task Concurrent_first_reads_of_the_same_tag_do_not_corrupt_the_runtime_cache()
{
@@ -193,6 +201,9 @@ public sealed class AbCipDriverCodeReviewRegressionTests
// ---- Driver.AbCip-004 — LInt/ULInt/UDInt declared type must agree with runtime value type ----
/// <summary>Verifies that AbCipDataType maps large integer types to their correct driver types.</summary>
/// <param name="abType">The AB CIP data type.</param>
/// <param name="expected">The expected driver data type.</param>
[Theory]
[InlineData(AbCipDataType.LInt, DriverDataType.Int64)]
[InlineData(AbCipDataType.ULInt, DriverDataType.UInt64)]
@@ -205,6 +216,7 @@ public sealed class AbCipDriverCodeReviewRegressionTests
abType.ToDriverDataType().ShouldBe(expected);
}
/// <summary>Tests that read UDInt tag returns uint value not negative-wrapped int.</summary>
[Fact]
public async Task Read_UDInt_tag_returns_uint_value_not_negative_wrapped_int()
{
@@ -230,6 +242,7 @@ public sealed class AbCipDriverCodeReviewRegressionTests
// ---- Driver.AbCip-005 — Structure parent not registered; duplicate key check ----
/// <summary>Tests that structure parent tag read returns BadNotSupported not Good null.</summary>
[Fact]
public async Task Structure_parent_tag_read_returns_BadNotSupported_not_Good_null()
{
@@ -259,6 +272,7 @@ public sealed class AbCipDriverCodeReviewRegressionTests
results.Single().Value.ShouldBeNull();
}
/// <summary>Tests that InitializeAsync throws on duplicate tag name.</summary>
[Fact]
public void InitializeAsync_throws_on_duplicate_tag_name()
{
@@ -278,6 +292,7 @@ public sealed class AbCipDriverCodeReviewRegressionTests
drv.InitializeAsync("{}", CancellationToken.None).GetAwaiter().GetResult());
}
/// <summary>Tests that InitializeAsync throws when member name collides with independent tag.</summary>
[Fact]
public void InitializeAsync_throws_when_member_name_collides_with_independent_tag()
{
@@ -302,6 +317,7 @@ public sealed class AbCipDriverCodeReviewRegressionTests
// ---- Driver.AbCip-010 — stale runtime evicted on failure ----
/// <summary>Tests that read failure evicts runtime so next read creates fresh handle.</summary>
[Fact]
public async Task Read_failure_evicts_runtime_so_next_read_creates_fresh_handle()
{