public void LoadKeyValuePairsFromAzureEnvironment()
        {
            var dict = new Hashtable()
            {
                { "APPSETTING_AppName", "TestAppName" },
                { "CUSTOMCONNSTR_db1", "CustomConnStr" },
                { "SQLCONNSTR_db2", "SQLConnStr" },
                { "MYSQLCONNSTR_db3", "MySQLConnStr" },
                { "SQLAZURECONNSTR_db4", "SQLAzureConnStr" },
                { "CommonEnv", "CommonEnvValue" },
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider();

            envConfigSrc.Load(dict);

            string value;

            Assert.Equal("TestAppName", envConfigSrc.Get("APPSETTING_AppName"));
            Assert.False(envConfigSrc.TryGet("AppName", out value));
            Assert.Equal("CustomConnStr", envConfigSrc.Get("ConnectionStrings:db1"));
            Assert.Equal("SQLConnStr", envConfigSrc.Get("ConnectionStrings:db2"));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("ConnectionStrings:db2_ProviderName"));
            Assert.Equal("MySQLConnStr", envConfigSrc.Get("ConnectionStrings:db3"));
            Assert.Equal("MySql.Data.MySqlClient", envConfigSrc.Get("ConnectionStrings:db3_ProviderName"));
            Assert.Equal("SQLAzureConnStr", envConfigSrc.Get("ConnectionStrings:db4"));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("ConnectionStrings:db4_ProviderName"));
            Assert.Equal("CommonEnvValue", envConfigSrc.Get("CommonEnv"));
        }
        public void LoadKeyValuePairsFromAzureEnvironment()
        {
            var dict = new Hashtable()
                {
                    {"APPSETTING_AppName", "TestAppName"},
                    {"CUSTOMCONNSTR_db1", "CustomConnStr"},
                    {"SQLCONNSTR_db2", "SQLConnStr"},
                    {"MYSQLCONNSTR_db3", "MySQLConnStr"},
                    {"SQLAZURECONNSTR_db4", "SQLAzureConnStr"},
                    {"CommonEnv", "CommonEnvValue"},
                };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider();

            envConfigSrc.Load(dict);

            string value;
            Assert.Equal("TestAppName", envConfigSrc.Get("APPSETTING_AppName"));
            Assert.False(envConfigSrc.TryGet("AppName", out value));
            Assert.Equal("CustomConnStr", envConfigSrc.Get("Data:db1:ConnectionString"));
            Assert.Equal("SQLConnStr", envConfigSrc.Get("Data:db2:ConnectionString"));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("Data:db2:ProviderName"));
            Assert.Equal("MySQLConnStr", envConfigSrc.Get("Data:db3:ConnectionString"));
            Assert.Equal("MySql.Data.MySqlClient", envConfigSrc.Get("Data:db3:ProviderName"));
            Assert.Equal("SQLAzureConnStr", envConfigSrc.Get("Data:db4:ConnectionString"));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("Data:db4:ProviderName"));
            Assert.Equal("CommonEnvValue", envConfigSrc.Get("CommonEnv"));
        }
Exemple #3
0
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json")
                          .AddEnvironmentVariables();

            var configuration = builder.Build();

            JsonConfigurationProvider jsonConfig = configuration.Providers.FirstOrDefault() as JsonConfigurationProvider;
            EnvironmentVariablesConfigurationProvider envConfig = configuration.Providers.LastOrDefault() as EnvironmentVariablesConfigurationProvider;

            while (true)
            {
                string connStr = string.Empty;

                if (envConfig.TryGet("TestConnection", out connStr))
                {
                    TestConnection(connStr);
                    return;
                }

                int i = 1;

                while (jsonConfig.TryGet("TestConnection" + i, out connStr))
                {
                    i++;

                    LogToConsole("--------------------");
                    LogToConsole("Will test " + connStr);
                    TestConnection(connStr);
                }

                LogToConsole("--------------------");
                LogToConsole("And now ENV variables");

                i = 1;

                while (envConfig.TryGet("TestConnection" + i, out connStr))
                {
                    i++;

                    LogToConsole("--------------------");
                    LogToConsole("Will test " + connStr);

                    TestConnection(connStr);
                }


                Thread.Sleep(new TimeSpan(0, 1, 0));
            }


            //Console.WriteLine("We're done. Press any key to quit.");
            //Console.ReadKey();
        }
        protected override (IConfigurationProvider Provider, Action Initializer) LoadThroughProvider(
            TestSection testConfig)
        {
            var values = new List <KeyValuePair <string, string> >();

            SectionToValues(testConfig, "", values);

            var provider = new EnvironmentVariablesConfigurationProvider(null);

            return(provider, () => provider.Load(new Hashtable(values.ToDictionary(e => e.Key, e => e.Value))));
        }
        public void OnlyASinglePrefixIsRemovedFromMatchingKey()
        {
            var dict = new Hashtable()
            {
                { "test__test__ConnectionString", "connection" }
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider("test__");

            envConfigSrc.Load(dict);

            Assert.Equal("connection", envConfigSrc.Get("test:ConnectionString"));
        }
        public void ReplaceDoubleUnderscoreInEnvironmentVariablesDoubleUnderscorePrefixStillMatches()
        {
            var dict = new Hashtable()
            {
                { "test__prefix__with__double__underscores__data__ConnectionString", "connection" }
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider("test__prefix__with__double__underscores__");

            envConfigSrc.Load(dict);

            Assert.Equal("connection", envConfigSrc.Get("data:ConnectionString"));
        }
Exemple #7
0
        public void ReplaceDoubleUnderscoreInEnvironmentVariablesWithDuplicatedPrefix()
        {
            var dict = new Hashtable()
            {
                { "test__test__ConnectionString", "connection" }
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider("test__");

            envConfigSrc.Load(dict);

            Assert.Throws <InvalidOperationException>(() => envConfigSrc.Get("test:ConnectionString"));
        }
Exemple #8
0
        public void ReplaceDoubleUnderscoreInEnvironmentVariablesButNotInAnomalousPrefix()
        {
            var dict = new Hashtable()
            {
                { "_____EXPERIMENTAL__data__ConnectionString", "connection" }
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider("::_EXPERIMENTAL:");

            envConfigSrc.Load(dict);

            Assert.Equal("connection", envConfigSrc.Get("data:ConnectionString"));
        }
Exemple #9
0
        public void ReplaceDoubleUnderscoreInEnvironmentVariablesButNotPrefix()
        {
            var dict = new Hashtable()
            {
                { "test__prefix__with__double__underscores__data__ConnectionString", "connection" }
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider("test__prefix__with__double__underscores__");

            envConfigSrc.Load(dict);

            Assert.Throws <InvalidOperationException>(() => envConfigSrc.Get("data:ConnectionString"));
        }
        public void MixingPathSeparatorsInPrefixStillMatchesEnvironmentVariable()
        {
            var dict = new Hashtable()
            {
                { "_____EXPERIMENTAL__data__ConnectionString", "connection" }
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider("::_EXPERIMENTAL:");

            envConfigSrc.Load(dict);

            Assert.Equal("connection", envConfigSrc.Get("data:ConnectionString"));
        }
Exemple #11
0
        public Property GetRuntimeConfiguration_SoftwareIdInherited(string value)
        {
            IDictionary evs = new Hashtable();

            Func <bool> rule = () =>
            {
                ObcConfiguration?config = new EnvironmentVariablesConfigurationProvider(evs).GetObcConfiguration();

                return(config.SoftwareId != value);
            };

            return(rule.When(!String.IsNullOrEmpty(value)));
        }
Exemple #12
0
        public Property GetRuntimeConfiguration_DefaultCurrencyInherited(string value)
        {
            IDictionary evs = new Hashtable();

            Func <bool> rule = () =>
            {
                ObcConfiguration?config = new EnvironmentVariablesConfigurationProvider(evs).GetObcConfiguration();

                return(config.DefaultCurrency != value);
            };

            return(rule.When(value != null));
        }
        public void LastVariableAddedWhenKeyIsDuplicatedInAzureEnvironment()
        {
            var dict = new Hashtable()
                {
                    {"Data:db2:ConnectionString", "CommonEnvValue"},
                    {"SQLCONNSTR_db2", "SQLConnStr"},
                };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider();

            envConfigSrc.Load(dict);

            Assert.True(!string.IsNullOrEmpty(envConfigSrc.Get("Data:db2:ConnectionString")));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("Data:db2:ProviderName"));
        }
        public void PrefixPreventsLoadingSqlConnectionStrings()
        {
            var dict = new Hashtable()
            {
                { "test__test__ConnectionString", "connection" },
                { "SQLCONNSTR_db1", "connStr" }
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider("test:");

            envConfigSrc.Load(dict);

            Assert.Equal("connection", envConfigSrc.Get("test:ConnectionString"));
            Assert.Throws <InvalidOperationException>(() => envConfigSrc.Get("ConnectionStrings:db1_ProviderName"));
        }
        public void ReplaceDoubleUnderscoreInEnvironmentVariables()
        {
            var dict = new Hashtable()
            {
                { "data__ConnectionString", "connection" },
                { "SQLCONNSTR_db1", "connStr" }
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider();

            envConfigSrc.Load(dict);

            Assert.Equal("connection", envConfigSrc.Get("data:ConnectionString"));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("ConnectionStrings:db1_ProviderName"));
        }
        public void LastVariableAddedWhenKeyIsDuplicatedInAzureEnvironment()
        {
            var dict = new Hashtable()
            {
                { "ConnectionStrings:db2", "CommonEnvValue" },
                { "SQLCONNSTR_db2", "SQLConnStr" },
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider();

            envConfigSrc.Load(dict);

            Assert.True(!string.IsNullOrEmpty(envConfigSrc.Get("ConnectionStrings:db2")));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("ConnectionStrings:db2_ProviderName"));
        }
        public void LastVariableAddedWhenMultipleEnvironmentVariablesWithSameNameButDifferentCaseExist()
        {
            var dict = new Hashtable()
            {
                { "CommonEnv", "CommonEnvValue1" },
                { "commonenv", "commonenvValue2" },
                { "cOMMonEnv", "commonenvValue3" },
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider();

            envConfigSrc.Load(dict);

            Assert.True(!string.IsNullOrEmpty(envConfigSrc.Get("cOMMonEnv")));
            Assert.True(!string.IsNullOrEmpty(envConfigSrc.Get("CommonEnv")));
        }
Exemple #18
0
        static ConfigurationManager()
        {
            var provider = new EnvironmentVariablesConfigurationProvider();

            provider.Load();
            provider.TryGet("ASPNETCORE_ENVIRONMENT", out string environmentName);

            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                          .AddJsonFile($"appsettings.{environmentName}.json", optional: true, reloadOnChange: true)
                          .AddEnvironmentVariables();

            Configuration = builder.Build();
        }
Exemple #19
0
        public Property GetRuntimeConfiguration_DefaultCurrencyApplied(string value)
        {
            IDictionary evs = new Hashtable();

            evs["OpenBankingConnector:DefaultCurrency"] = value;

            Func <bool> rule = () =>
            {
                ObcConfiguration?config = new EnvironmentVariablesConfigurationProvider(evs).GetObcConfiguration();

                return(config.DefaultCurrency == value);
            };

            return(rule.When(value != null));
        }
        public void LastVariableAddedWhenMultipleEnvironmentVariablesWithSameNameButDifferentCaseExist()
        {
            var dict = new Hashtable()
                {
                    {"CommonEnv", "CommonEnvValue1"},
                    {"commonenv", "commonenvValue2"},
                    {"cOMMonEnv", "commonenvValue3"},
                };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider();

            envConfigSrc.Load(dict);

            Assert.True(!string.IsNullOrEmpty(envConfigSrc.Get("cOMMonEnv")));
            Assert.True(!string.IsNullOrEmpty(envConfigSrc.Get("CommonEnv")));
        }
Exemple #21
0
        public void IConfigurationProvider_EnvironmentVariablesConfigurationProvider()
        {
            Environment.SetEnvironmentVariable("Name", "SinxHe");
            var source = new EnvironmentVariablesConfigurationSource
            {
                Prefix = null
            };
            var provider = new EnvironmentVariablesConfigurationProvider();

            provider.TryGet("Name", out var name);
            Assert.Null(name);
            provider.Load();
            provider.TryGet("Name", out name);
            Assert.Equal(name, "SinxHe");
        }
Exemple #22
0
        public void LoadKeyValuePairsFromEnvironmentDictionaryWithPrefix()
        {
            var dict = new Hashtable()
            {
                { "DefaultConnection:ConnectionString", "TestConnectionString" },
                { "DefaultConnection:Provider", "SqlClient" },
                { "Inventory:ConnectionString", "AnotherTestConnectionString" },
                { "Inventory:Provider", "MySql" }
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider("DefaultConnection:");

            envConfigSrc.Load(dict);

            Assert.Equal("TestConnectionString", envConfigSrc.Get("ConnectionString"));
            Assert.Equal("SqlClient", envConfigSrc.Get("Provider"));
        }
        public void LoadKeyValuePairsFromEnvironmentDictionaryWithPrefix()
        {
            var dict = new Hashtable()
                {
                    {"DefaultConnection:ConnectionString", "TestConnectionString"},
                    {"DefaultConnection:Provider", "SqlClient"},
                    {"Inventory:ConnectionString", "AnotherTestConnectionString"},
                    {"Inventory:Provider", "MySql"}
                };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider("DefaultConnection:");

            envConfigSrc.Load(dict);

            Assert.Equal("TestConnectionString", envConfigSrc.Get("ConnectionString"));
            Assert.Equal("SqlClient", envConfigSrc.Get("Provider"));
        }
        public void LoadKeyValuePairsFromEnvironmentDictionary()
        {
            var dict = new Hashtable()
                {
                    {"DefaultConnection:ConnectionString", "TestConnectionString"},
                    {"DefaultConnection:Provider", "SqlClient"},
                    {"Inventory:ConnectionString", "AnotherTestConnectionString"},
                    {"Inventory:Provider", "MySql"}
                };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider();

            envConfigSrc.Load(dict);

            Assert.Equal("TestConnectionString", envConfigSrc.Get("defaultconnection:ConnectionString"));
            Assert.Equal("SqlClient", envConfigSrc.Get("DEFAULTCONNECTION:PROVIDER"));
            Assert.Equal("AnotherTestConnectionString", envConfigSrc.Get("Inventory:CONNECTIONSTRING"));
            Assert.Equal("MySql", envConfigSrc.Get("Inventory:Provider"));
        }
Exemple #25
0
        public void LoadKeyValuePairsFromEnvironmentDictionary()
        {
            var dict = new Hashtable()
            {
                { "DefaultConnection:ConnectionString", "TestConnectionString" },
                { "DefaultConnection:Provider", "SqlClient" },
                { "Inventory:ConnectionString", "AnotherTestConnectionString" },
                { "Inventory:Provider", "MySql" }
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider(null);

            envConfigSrc.Load(dict);

            Assert.Equal("TestConnectionString", envConfigSrc.Get("defaultconnection:ConnectionString"));
            Assert.Equal("SqlClient", envConfigSrc.Get("DEFAULTCONNECTION:PROVIDER"));
            Assert.Equal("AnotherTestConnectionString", envConfigSrc.Get("Inventory:CONNECTIONSTRING"));
            Assert.Equal("MySql", envConfigSrc.Get("Inventory:Provider"));
        }
Exemple #26
0
        static ConfigurationManager()
        {
            var provider = new EnvironmentVariablesConfigurationProvider();

            provider.Load();
            provider.TryGet("ASPNETCORE_ENVIRONMENT", out string environmentName);

            //使用reloadOnChange为true会造成有线程监听配置文件   可以考虑使用依赖注入配置文件或者改为false
            //https://blog.csdn.net/hiliqi/article/details/80953502
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: false)
                          .AddJsonFile($"appsettings.{environmentName}.json", optional: true, reloadOnChange: false)
                          .AddJsonFile("host.json", optional: true, reloadOnChange: false)
                          .AddJsonFile($"host.{environmentName}.json", optional: true, reloadOnChange: false)
                          .AddEnvironmentVariables();

            Configuration = builder.Build();
        }
Exemple #27
0
        public void LoadKeyValuePairsFromAzureEnvironment()
        {
            var dict = new Hashtable()
            {
                { "APPSETTING_AppName", "TestAppName" },
                { "CUSTOMCONNSTR_db1", "CustomConnStr" },
                { "SQLCONNSTR_db2", "SQLConnStr" },
                { "MYSQLCONNSTR_db3", "MySQLConnStr" },
                { "SQLAZURECONNSTR_db4", "SQLAzureConnStr" },
                { "CommonEnv", "CommonEnvValue" },
                { "APIHUBCONNSTR_apihub", "ApiHubConnStr" },
                { "DOCDBCONNSTR_cosmos", "CosmosDbConnStr" },
                { "EVENTHUBCONNSTR_eventhub", "EventHubConnStr" },
                { "NOTIFICATIONHUBCONNSTR_notificationhub", "NotificationHubConnStr" },
                { "POSTGRESQLCONNSTR_db5", "PostgresqlConnStr" },
                { "REDISCACHECONNSTR_cache", "RedisConnStr" },
                { "SERVICEBUSCONNSTR_servicebus", "ServiceBusConnStr" },
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider();

            envConfigSrc.Load(dict);

            string value;

            Assert.Equal("TestAppName", envConfigSrc.Get("APPSETTING_AppName"));
            Assert.False(envConfigSrc.TryGet("AppName", out value));
            Assert.Equal("CustomConnStr", envConfigSrc.Get("ConnectionStrings:db1"));
            Assert.Equal("SQLConnStr", envConfigSrc.Get("ConnectionStrings:db2"));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("ConnectionStrings:db2_ProviderName"));
            Assert.Equal("MySQLConnStr", envConfigSrc.Get("ConnectionStrings:db3"));
            Assert.Equal("MySql.Data.MySqlClient", envConfigSrc.Get("ConnectionStrings:db3_ProviderName"));
            Assert.Equal("SQLAzureConnStr", envConfigSrc.Get("ConnectionStrings:db4"));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("ConnectionStrings:db4_ProviderName"));
            Assert.Equal("CommonEnvValue", envConfigSrc.Get("CommonEnv"));
            Assert.Equal("ApiHubConnStr", envConfigSrc.Get("ConnectionStrings:apihub"));
            Assert.Equal("CosmosDbConnStr", envConfigSrc.Get("ConnectionStrings:cosmos"));
            Assert.Equal("EventHubConnStr", envConfigSrc.Get("ConnectionStrings:eventhub"));
            Assert.Equal("NotificationHubConnStr", envConfigSrc.Get("ConnectionStrings:notificationhub"));
            Assert.Equal("PostgresqlConnStr", envConfigSrc.Get("ConnectionStrings:db5"));
            Assert.Equal("RedisConnStr", envConfigSrc.Get("ConnectionStrings:cache"));
            Assert.Equal("ServiceBusConnStr", envConfigSrc.Get("ConnectionStrings:servicebus"));
        }
Exemple #28
0
 /// <summary>
 /// Configure the dependency injection services
 /// </summary>
 private static IServiceProvider CreateServices()
 {
     return(new ServiceCollection()
            .AddFluentMigratorCore()
            .AddScoped <IConfiguration>(x =>
     {
         var env = new EnvironmentVariablesConfigurationProvider();
         return new ConfigurationRoot(new[] { env });
     })
            .ConfigureRunner(rb => rb
                             .AddPostgres()
                             .WithGlobalConnectionString(z =>
     {
         var configuration = z.GetService <IConfiguration>();
         return configuration["ConnectionString"];
     })
                             .ScanIn(typeof(Program).Assembly).For.Migrations())
            .AddLogging(lb => lb.AddFluentMigratorConsole())
            .BuildServiceProvider(false));
 }
        public void OnlyEnvironmentVariablesMatchingTheGivenPrefixAreIncluded()
        {
            var dict = new Hashtable()
            {
                { "projectA__section1__project", "A" },
                { "projectA__section1__projectA", "true" },
                { "projectB__section1__project", "B" },
                { "projectB__section1__projectB", "true" },
                { "section1__project", "unknown" },
                { "section1__noProject", "true" }
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider("projectB__");

            envConfigSrc.Load(dict);

            Assert.Equal("B", envConfigSrc.Get("section1:project"));
            Assert.Equal("true", envConfigSrc.Get("section1:projectB"));
            Assert.Throws <InvalidOperationException>(() => envConfigSrc.Get("section1:projectA"));
            Assert.Throws <InvalidOperationException>(() => envConfigSrc.Get("section1:noProject"));
        }
        public void LoadKeyValuePairsFromAzureEnvironmentWithPrefix()
        {
            var dict = new Hashtable()
            {
                { "CUSTOMCONNSTR_db1", "CustomConnStr" },
                { "SQLCONNSTR_db2", "SQLConnStr" },
                { "MYSQLCONNSTR_db3", "MySQLConnStr" },
                { "SQLAZURECONNSTR_db4", "SQLAzureConnStr" },
                { "CommonEnv", "CommonEnvValue" },
            };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider("ConnectionStrings:");

            envConfigSrc.Load(dict);

            Assert.Equal("CustomConnStr", envConfigSrc.Get("db1"));
            Assert.Equal("SQLConnStr", envConfigSrc.Get("db2"));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("db2_ProviderName"));
            Assert.Equal("MySQLConnStr", envConfigSrc.Get("db3"));
            Assert.Equal("MySql.Data.MySqlClient", envConfigSrc.Get("db3_ProviderName"));
            Assert.Equal("SQLAzureConnStr", envConfigSrc.Get("db4"));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("db4_ProviderName"));
        }
        public void ReplaceDoubleUnderscoreInEnvironmentVariables()
        {
            var dict = new Hashtable()
                {
                    {"data__ConnectionString", "connection"},
                    {"SQLCONNSTR__db1", "connStr"}
                };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider();

            envConfigSrc.Load(dict);

            Assert.Equal("connection", envConfigSrc.Get("data:ConnectionString"));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("Data:_db1:ProviderName"));
        }
        public void LoadKeyValuePairsFromAzureEnvironmentWithPrefix()
        {
            var dict = new Hashtable()
                {
                    {"CUSTOMCONNSTR_db1", "CustomConnStr"},
                    {"SQLCONNSTR_db2", "SQLConnStr"},
                    {"MYSQLCONNSTR_db3", "MySQLConnStr"},
                    {"SQLAZURECONNSTR_db4", "SQLAzureConnStr"},
                    {"CommonEnv", "CommonEnvValue"},
                };
            var envConfigSrc = new EnvironmentVariablesConfigurationProvider("Data:");

            envConfigSrc.Load(dict);

            Assert.Equal("CustomConnStr", envConfigSrc.Get("db1:ConnectionString"));
            Assert.Equal("SQLConnStr", envConfigSrc.Get("db2:ConnectionString"));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("db2:ProviderName"));
            Assert.Equal("MySQLConnStr", envConfigSrc.Get("db3:ConnectionString"));
            Assert.Equal("MySql.Data.MySqlClient", envConfigSrc.Get("db3:ProviderName"));
            Assert.Equal("SQLAzureConnStr", envConfigSrc.Get("db4:ConnectionString"));
            Assert.Equal("System.Data.SqlClient", envConfigSrc.Get("db4:ProviderName"));
        }