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
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:
@@ -13,6 +13,7 @@ namespace ZB.MOM.WW.OtOpcUa.ControlPlane.Tests;
|
||||
|
||||
public sealed class AdminOperationsActorTests : ControlPlaneActorTestBase
|
||||
{
|
||||
/// <summary>Verifies that starting a deployment inserts a row and dispatches to the coordinator.</summary>
|
||||
[Fact]
|
||||
public void StartDeployment_inserts_deployment_and_dispatches_to_coordinator()
|
||||
{
|
||||
@@ -41,6 +42,7 @@ public sealed class AdminOperationsActorTests : ControlPlaneActorTestBase
|
||||
db.ConfigEdits.Single().EntityType.ShouldBe("Deployment");
|
||||
}
|
||||
|
||||
/// <summary>Verifies that starting a deployment is refused when another is in flight.</summary>
|
||||
[Fact]
|
||||
public void StartDeployment_refuses_when_another_is_in_flight()
|
||||
{
|
||||
|
||||
@@ -21,6 +21,7 @@ public sealed class AuditWriterActorTests : ControlPlaneActorTestBase
|
||||
SourceNode: NodeId.Parse("node-a"),
|
||||
CorrelationId: CorrelationId.NewId());
|
||||
|
||||
/// <summary>Verifies that buffered events flush when count threshold is reached.</summary>
|
||||
[Fact]
|
||||
public void Buffered_events_flush_on_count_threshold()
|
||||
{
|
||||
@@ -39,6 +40,7 @@ public sealed class AuditWriterActorTests : ControlPlaneActorTestBase
|
||||
}, duration: TimeSpan.FromSeconds(2));
|
||||
}
|
||||
|
||||
/// <summary>Verifies that duplicate event IDs within a batch are deduplicated in the buffer.</summary>
|
||||
[Fact]
|
||||
public void Duplicate_eventIds_within_a_batch_dedup_in_buffer()
|
||||
{
|
||||
@@ -59,6 +61,7 @@ public sealed class AuditWriterActorTests : ControlPlaneActorTestBase
|
||||
db.ConfigAuditLogs.Count().ShouldBe(100, "in-buffer dedup should collapse duplicate EventIds");
|
||||
}
|
||||
|
||||
/// <summary>Verifies that PostStop flushes the pending buffer.</summary>
|
||||
[Fact]
|
||||
public void PostStop_flushes_pending_buffer()
|
||||
{
|
||||
@@ -77,6 +80,7 @@ public sealed class AuditWriterActorTests : ControlPlaneActorTestBase
|
||||
db.ConfigAuditLogs.Count().ShouldBe(10);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that EventId and CorrelationId are persisted to dedicated columns.</summary>
|
||||
[Fact]
|
||||
public void EventId_and_CorrelationId_are_persisted_to_dedicated_columns()
|
||||
{
|
||||
|
||||
@@ -9,6 +9,7 @@ namespace ZB.MOM.WW.OtOpcUa.ControlPlane.Tests;
|
||||
|
||||
public sealed class ConfigComposerTests : ControlPlaneActorTestBase
|
||||
{
|
||||
/// <summary>Verifies that an empty database produces a stable, reproducible hash.</summary>
|
||||
[Fact]
|
||||
public async Task Empty_database_produces_stable_hash()
|
||||
{
|
||||
@@ -24,6 +25,7 @@ public sealed class ConfigComposerTests : ControlPlaneActorTestBase
|
||||
a1.Blob.ShouldBe(a2.Blob);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that insertion order does not affect the configuration hash.</summary>
|
||||
[Fact]
|
||||
public async Task Same_rows_in_different_insert_orders_produce_same_hash()
|
||||
{
|
||||
@@ -51,6 +53,7 @@ public sealed class ConfigComposerTests : ControlPlaneActorTestBase
|
||||
hashAB.ShouldBe(hashBA);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that different database configurations produce different hashes.</summary>
|
||||
[Fact]
|
||||
public async Task Different_data_produces_different_hash()
|
||||
{
|
||||
@@ -72,6 +75,7 @@ public sealed class ConfigComposerTests : ControlPlaneActorTestBase
|
||||
hashAB.ShouldNotBe(hashA);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that the revision hash is a 64-character lowercase hexadecimal string.</summary>
|
||||
[Fact]
|
||||
public async Task Hash_is_64_lowercase_hex_chars()
|
||||
{
|
||||
|
||||
@@ -13,6 +13,7 @@ public sealed class ConfigPublishCoordinatorTests : ControlPlaneActorTestBase
|
||||
{
|
||||
private static readonly RevisionHash TestRevision = RevisionHash.Parse(new string('a', 64));
|
||||
|
||||
/// <summary>Verifies that deployment seals immediately when no driver-role members are in the cluster.</summary>
|
||||
[Fact]
|
||||
public void EmptyCluster_dispatch_seals_immediately()
|
||||
{
|
||||
@@ -32,6 +33,7 @@ public sealed class ConfigPublishCoordinatorTests : ControlPlaneActorTestBase
|
||||
}, duration: TimeSpan.FromSeconds(3));
|
||||
}
|
||||
|
||||
/// <summary>Verifies that stale apply acknowledgments arriving after seal are ignored.</summary>
|
||||
[Fact]
|
||||
public void Stale_ApplyAck_after_seal_is_ignored()
|
||||
{
|
||||
|
||||
+3
@@ -15,6 +15,7 @@ public sealed class ConfigPublishCoordinatorTimeoutTests : ControlPlaneActorTest
|
||||
{
|
||||
private static readonly RevisionHash TestRevision = RevisionHash.Parse(new string('b', 64));
|
||||
|
||||
/// <summary>Verifies that DeadlineElapsed marks the current deployment as timed out.</summary>
|
||||
[Fact]
|
||||
public void DeadlineElapsed_for_current_deployment_marks_TimedOut()
|
||||
{
|
||||
@@ -48,6 +49,7 @@ public sealed class ConfigPublishCoordinatorTimeoutTests : ControlPlaneActorTest
|
||||
}, duration: TimeSpan.FromSeconds(3));
|
||||
}
|
||||
|
||||
/// <summary>Verifies that stale DeadlineElapsed for other deployments is ignored.</summary>
|
||||
[Fact]
|
||||
public void Stale_DeadlineElapsed_for_other_deployment_is_ignored()
|
||||
{
|
||||
@@ -66,6 +68,7 @@ public sealed class ConfigPublishCoordinatorTimeoutTests : ControlPlaneActorTest
|
||||
status.ShouldNotBe(DeploymentStatus.TimedOut);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that PreStart recovers in-flight deployment state.</summary>
|
||||
[Fact]
|
||||
public void PreStart_recovers_inflight_deployment_state()
|
||||
{
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace ZB.MOM.WW.OtOpcUa.ControlPlane.Tests;
|
||||
|
||||
public sealed class FleetStatusBroadcasterTests : ControlPlaneActorTestBase
|
||||
{
|
||||
/// <summary>Verifies that the self member's join appears in the initial fleet status snapshot.</summary>
|
||||
[Fact]
|
||||
public void Self_member_up_lands_in_snapshot()
|
||||
{
|
||||
@@ -22,6 +23,7 @@ public sealed class FleetStatusBroadcasterTests : ControlPlaneActorTestBase
|
||||
snapshot.Nodes.Any(n => n.Health == FleetNodeHealth.Healthy).ShouldBeTrue();
|
||||
}
|
||||
|
||||
/// <summary>Verifies that heartbeat messages update the node revision in the next broadcast.</summary>
|
||||
[Fact]
|
||||
public void Heartbeat_updates_revision_in_next_snapshot()
|
||||
{
|
||||
|
||||
@@ -16,6 +16,7 @@ namespace ZB.MOM.WW.OtOpcUa.ControlPlane.Tests.Harness;
|
||||
/// </summary>
|
||||
public abstract class ControlPlaneActorTestBase : TestKit
|
||||
{
|
||||
/// <summary>Gets the Akka configuration for test actors, including cluster and pub-sub extensions.</summary>
|
||||
protected static string AkkaTestHocon => @"
|
||||
akka {
|
||||
loglevel = ""WARNING""
|
||||
@@ -38,6 +39,7 @@ akka {
|
||||
}
|
||||
}";
|
||||
|
||||
/// <summary>Initializes a new instance of the test harness; joins the cluster and waits for up status.</summary>
|
||||
protected ControlPlaneActorTestBase() : base(AkkaTestHocon)
|
||||
{
|
||||
// Self-join so the cluster transitions to Up and DistributedPubSub forms.
|
||||
@@ -47,6 +49,9 @@ akka {
|
||||
TimeSpan.FromSeconds(5));
|
||||
}
|
||||
|
||||
/// <summary>Creates a new in-memory database context factory with an optional database name.</summary>
|
||||
/// <param name="dbName">Optional database name; defaults to a random GUID if not provided.</param>
|
||||
/// <returns>A context factory for creating in-memory config database contexts.</returns>
|
||||
protected static IDbContextFactory<OtOpcUaConfigDbContext> NewInMemoryDbFactory(string? dbName = null)
|
||||
{
|
||||
dbName ??= Guid.NewGuid().ToString("N");
|
||||
@@ -55,6 +60,8 @@ akka {
|
||||
|
||||
private sealed class InMemoryConfigDbFactory(string dbName) : IDbContextFactory<OtOpcUaConfigDbContext>
|
||||
{
|
||||
/// <summary>Creates a new in-memory database context.</summary>
|
||||
/// <returns>A new OtOpcUaConfigDbContext instance.</returns>
|
||||
public OtOpcUaConfigDbContext CreateDbContext()
|
||||
{
|
||||
var opts = new DbContextOptionsBuilder<OtOpcUaConfigDbContext>()
|
||||
|
||||
@@ -15,6 +15,7 @@ namespace ZB.MOM.WW.OtOpcUa.ControlPlane.Tests;
|
||||
/// </summary>
|
||||
public sealed class RedundancyStateActorTests : ControlPlaneActorTestBase
|
||||
{
|
||||
/// <summary>Verifies that a self-join event triggers RedundancyStateChanged through the broadcast override.</summary>
|
||||
[Fact]
|
||||
public void Self_join_triggers_RedundancyStateChanged_via_broadcast_override()
|
||||
{
|
||||
@@ -27,6 +28,7 @@ public sealed class RedundancyStateActorTests : ControlPlaneActorTestBase
|
||||
msg.CorrelationId.Value.ShouldNotBe(Guid.Empty);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that multiple back-to-back events debounce to a single RedundancyStateChanged publication.</summary>
|
||||
[Fact]
|
||||
public void Multiple_back_to_back_events_debounce_to_single_publish()
|
||||
{
|
||||
|
||||
@@ -7,6 +7,8 @@ namespace ZB.MOM.WW.OtOpcUa.ControlPlane.Tests;
|
||||
|
||||
public sealed class ServiceLevelCalculatorTests
|
||||
{
|
||||
/// <summary>Verifies that non-Up member statuses return a service level of zero.</summary>
|
||||
/// <param name="status">The Akka cluster member status to test.</param>
|
||||
[Theory]
|
||||
[InlineData(MemberStatus.Down)]
|
||||
[InlineData(MemberStatus.Removed)]
|
||||
@@ -19,6 +21,7 @@ public sealed class ServiceLevelCalculatorTests
|
||||
sl.ShouldBe((byte)0);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that a fully healthy non-leader member returns a service level of 240.</summary>
|
||||
[Fact]
|
||||
public void Fully_healthy_non_leader_returns_240()
|
||||
{
|
||||
@@ -27,6 +30,7 @@ public sealed class ServiceLevelCalculatorTests
|
||||
sl.ShouldBe((byte)240);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that a fully healthy role leader returns a service level of 250.</summary>
|
||||
[Fact]
|
||||
public void Fully_healthy_role_leader_returns_250()
|
||||
{
|
||||
@@ -35,6 +39,7 @@ public sealed class ServiceLevelCalculatorTests
|
||||
sl.ShouldBe((byte)250);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that a database reachable but stale returns a service level of 200.</summary>
|
||||
[Fact]
|
||||
public void Db_reachable_but_stale_returns_200()
|
||||
{
|
||||
@@ -43,6 +48,7 @@ public sealed class ServiceLevelCalculatorTests
|
||||
sl.ShouldBe((byte)200);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that an unreachable and stale database returns a service level of 100.</summary>
|
||||
[Fact]
|
||||
public void Db_unreachable_and_stale_returns_100()
|
||||
{
|
||||
@@ -51,6 +57,7 @@ public sealed class ServiceLevelCalculatorTests
|
||||
sl.ShouldBe((byte)100);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that an OPC UA probe failure on a non-stale database returns zero.</summary>
|
||||
[Fact]
|
||||
public void Opcua_probe_fail_when_not_stale_returns_zero()
|
||||
{
|
||||
@@ -60,6 +67,7 @@ public sealed class ServiceLevelCalculatorTests
|
||||
sl.ShouldBe((byte)0);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that a Joining member status is treated like Up for service level grading.</summary>
|
||||
[Fact]
|
||||
public void Joining_member_is_treated_like_Up_for_grading()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user