From 9f61cd5989129f99c01bb56bcb2cc9e4f137490f Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Tue, 26 May 2026 04:53:25 -0400 Subject: [PATCH] test(controlplane): self-join cluster + DistributedPubSub extension in test harness --- .../Harness/ControlPlaneTestHarness.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests/Harness/ControlPlaneTestHarness.cs b/tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests/Harness/ControlPlaneTestHarness.cs index 68b662f..17089c2 100644 --- a/tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests/Harness/ControlPlaneTestHarness.cs +++ b/tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests/Harness/ControlPlaneTestHarness.cs @@ -1,3 +1,4 @@ +using Akka.Cluster; using Akka.TestKit.Xunit2; using Microsoft.EntityFrameworkCore; using ZB.MOM.WW.OtOpcUa.Configuration; @@ -18,6 +19,9 @@ public abstract class ControlPlaneActorTestBase : TestKit protected static string AkkaTestHocon => @" akka { loglevel = ""WARNING"" + extensions = [ + ""Akka.Cluster.Tools.PublishSubscribe.DistributedPubSubExtensionProvider, Akka.Cluster.Tools"" + ] actor { provider = ""Akka.Cluster.ClusterActorRefProvider, Akka.Cluster"" } @@ -30,10 +34,18 @@ akka { roles = [""admin""] min-nr-of-members = 1 run-coordinated-shutdown-when-down = off + pub-sub.role = """" } }"; - protected ControlPlaneActorTestBase() : base(AkkaTestHocon) { } + protected ControlPlaneActorTestBase() : base(AkkaTestHocon) + { + // Self-join so the cluster transitions to Up and DistributedPubSub forms. + var cluster = Akka.Cluster.Cluster.Get(Sys); + cluster.Join(cluster.SelfAddress); + AwaitCondition(() => cluster.State.Members.Any(m => m.Status == MemberStatus.Up), + TimeSpan.FromSeconds(5)); + } protected static IDbContextFactory NewInMemoryDbFactory(string? dbName = null) {