using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
namespace ZB.MOM.WW.ScadaBridge.DataConnectionLayer.Tests;
public class GlobalOptionsValidationTests
{
/// Verifies that startup rejects blank identity.
/// Test case input.
[Theory]
[InlineData("ScadaBridge:OpcUa:ApplicationName")]
[InlineData("ScadaBridge:MxGateway:ClientNamePrefix")]
public void StartupRejectsBlankIdentity(string key)
{
var services = new ServiceCollection();
services.AddSingleton(new ConfigurationBuilder().AddInMemoryCollection(
new Dictionary { [key] = " " }).Build());
services.AddDataConnectionLayer();
using var provider = services.BuildServiceProvider();
var exception = Assert.Throws(() => provider.GetRequiredService().Validate());
Assert.Contains(key, exception.Message);
}
/// Verifies that defaults validate at startup.
[Fact]
public void DefaultsValidateAtStartup()
{
var services = new ServiceCollection();
services.AddSingleton(new ConfigurationBuilder().Build());
services.AddDataConnectionLayer();
using var provider = services.BuildServiceProvider();
provider.GetRequiredService().Validate();
}
}