using Opc.Ua; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Host.OpcUa; namespace ZB.MOM.WW.OtOpcUa.Tests.Redundancy { public class RedundancyModeResolverTests { [Fact] public void Resolve_Disabled_ReturnsNone() { RedundancyModeResolver.Resolve("Warm", false).ShouldBe(RedundancySupport.None); } [Fact] public void Resolve_Warm_ReturnsWarm() { RedundancyModeResolver.Resolve("Warm", true).ShouldBe(RedundancySupport.Warm); } [Fact] public void Resolve_Hot_ReturnsHot() { RedundancyModeResolver.Resolve("Hot", true).ShouldBe(RedundancySupport.Hot); } [Fact] public void Resolve_Unknown_FallsBackToNone() { RedundancyModeResolver.Resolve("Transparent", true).ShouldBe(RedundancySupport.None); } [Fact] public void Resolve_CaseInsensitive() { RedundancyModeResolver.Resolve("warm", true).ShouldBe(RedundancySupport.Warm); RedundancyModeResolver.Resolve("WARM", true).ShouldBe(RedundancySupport.Warm); RedundancyModeResolver.Resolve("hot", true).ShouldBe(RedundancySupport.Hot); } [Fact] public void Resolve_Null_FallsBackToNone() { RedundancyModeResolver.Resolve(null!, true).ShouldBe(RedundancySupport.None); } [Fact] public void Resolve_Empty_FallsBackToNone() { RedundancyModeResolver.Resolve("", true).ShouldBe(RedundancySupport.None); } } }