using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; namespace ZB.MOM.WW.ScadaBridge.DataConnectionLayer.Tests; public class GlobalOptionsValidationTests { [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); } [Fact] public void DefaultsValidateAtStartup() { var services = new ServiceCollection(); services.AddSingleton(new ConfigurationBuilder().Build()); services.AddDataConnectionLayer(); using var provider = services.BuildServiceProvider(); provider.GetRequiredService().Validate(); } }