using ScadaLink.CLI; namespace ScadaLink.CLI.Tests; public class CliConfigTests { [Fact] public void Load_DefaultValues_WhenNoConfigExists() { // Clear environment variables that might affect the test var origContact = Environment.GetEnvironmentVariable("SCADALINK_CONTACT_POINTS"); var origLdap = Environment.GetEnvironmentVariable("SCADALINK_LDAP_SERVER"); var origFormat = Environment.GetEnvironmentVariable("SCADALINK_FORMAT"); try { Environment.SetEnvironmentVariable("SCADALINK_CONTACT_POINTS", null); Environment.SetEnvironmentVariable("SCADALINK_LDAP_SERVER", null); Environment.SetEnvironmentVariable("SCADALINK_FORMAT", null); var config = CliConfig.Load(); Assert.Equal(636, config.LdapPort); Assert.True(config.LdapUseTls); Assert.Equal("json", config.DefaultFormat); } finally { Environment.SetEnvironmentVariable("SCADALINK_CONTACT_POINTS", origContact); Environment.SetEnvironmentVariable("SCADALINK_LDAP_SERVER", origLdap); Environment.SetEnvironmentVariable("SCADALINK_FORMAT", origFormat); } } [Fact] public void Load_ContactPoints_FromEnvironment() { var orig = Environment.GetEnvironmentVariable("SCADALINK_CONTACT_POINTS"); try { Environment.SetEnvironmentVariable("SCADALINK_CONTACT_POINTS", "host1:8080,host2:8080"); var config = CliConfig.Load(); Assert.Equal(2, config.ContactPoints.Count); Assert.Equal("host1:8080", config.ContactPoints[0]); Assert.Equal("host2:8080", config.ContactPoints[1]); } finally { Environment.SetEnvironmentVariable("SCADALINK_CONTACT_POINTS", orig); } } [Fact] public void Load_LdapServer_FromEnvironment() { var orig = Environment.GetEnvironmentVariable("SCADALINK_LDAP_SERVER"); try { Environment.SetEnvironmentVariable("SCADALINK_LDAP_SERVER", "ldap.example.com"); var config = CliConfig.Load(); Assert.Equal("ldap.example.com", config.LdapServer); } finally { Environment.SetEnvironmentVariable("SCADALINK_LDAP_SERVER", orig); } } [Fact] public void Load_Format_FromEnvironment() { var orig = Environment.GetEnvironmentVariable("SCADALINK_FORMAT"); try { Environment.SetEnvironmentVariable("SCADALINK_FORMAT", "table"); var config = CliConfig.Load(); Assert.Equal("table", config.DefaultFormat); } finally { Environment.SetEnvironmentVariable("SCADALINK_FORMAT", orig); } } }