namespace ZB.MOM.WW.ScadaBridge.DataConnectionLayer.Tests; /// Gitea #121: validation of the OPC UA application identity options. public class OpcUaGlobalOptionsValidatorTests { private static bool Valid(OpcUaGlobalOptions o) => new OpcUaGlobalOptionsValidator().Validate(null, o).Succeeded; /// Defaults (blank URI, 24-month lifetime) are valid. [Fact] public void Defaults_AreValid() => Assert.True(Valid(new OpcUaGlobalOptions())); /// An explicit urn ApplicationUri is accepted; a relative one is not. [Theory] [InlineData("urn:site-a-node-a:ScadaBridge-DCL", true)] [InlineData("not a uri", false)] public void ApplicationUri_MustBeAbsolute(string uri, bool expected) => Assert.Equal(expected, Valid(new OpcUaGlobalOptions { ApplicationUri = uri })); /// Certificate lifetime is bounded to 1–600 months. [Theory] [InlineData(0, false)] [InlineData(1, true)] [InlineData(600, true)] [InlineData(601, false)] public void Lifetime_IsBounded(int months, bool expected) => Assert.Equal(expected, Valid(new OpcUaGlobalOptions { ApplicationCertificateLifetimeMonths = months })); }