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