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 }));
}