namespace ScadaLink.ClusterInfrastructure.Tests; /// /// Tests for ClusterOptions default values and property setters. /// public class ClusterOptionsTests { [Fact] public void DefaultValues_AreCorrect() { var options = new ClusterOptions(); Assert.Equal("keep-oldest", options.SplitBrainResolverStrategy); Assert.Equal(TimeSpan.FromSeconds(15), options.StableAfter); Assert.Equal(TimeSpan.FromSeconds(2), options.HeartbeatInterval); Assert.Equal(TimeSpan.FromSeconds(10), options.FailureDetectionThreshold); Assert.Equal(1, options.MinNrOfMembers); } [Fact] public void SeedNodes_DefaultsToEmptyList() { var options = new ClusterOptions(); Assert.NotNull(options.SeedNodes); Assert.Empty(options.SeedNodes); } [Fact] public void Properties_CanBeSetToCustomValues() { var options = new ClusterOptions { SeedNodes = new List { "akka.tcp://system@node1:2551", "akka.tcp://system@node2:2551" }, SplitBrainResolverStrategy = "keep-majority", StableAfter = TimeSpan.FromSeconds(30), HeartbeatInterval = TimeSpan.FromSeconds(5), FailureDetectionThreshold = TimeSpan.FromSeconds(20), MinNrOfMembers = 2 }; Assert.Equal(2, options.SeedNodes.Count); Assert.Contains("akka.tcp://system@node1:2551", options.SeedNodes); Assert.Contains("akka.tcp://system@node2:2551", options.SeedNodes); Assert.Equal("keep-majority", options.SplitBrainResolverStrategy); Assert.Equal(TimeSpan.FromSeconds(30), options.StableAfter); Assert.Equal(TimeSpan.FromSeconds(5), options.HeartbeatInterval); Assert.Equal(TimeSpan.FromSeconds(20), options.FailureDetectionThreshold); Assert.Equal(2, options.MinNrOfMembers); } }