コード例 #1
0
        public void GetPropertyValue_ReturnCorrect_WhenTypeIsString()
        {
            var value = ExternalConfigurationProvider.GetPropertyValue(typeof(string), "custom value");

            var stringValue = Assert.IsType <string>(value);

            Assert.Equal("custom value", stringValue);
        }
コード例 #2
0
        public void GetPropertyValue_ReturnCorrect_WhenTypeIsDouble()
        {
            var value = ExternalConfigurationProvider.GetPropertyValue(typeof(Double), "42.42");

            var doubleValue = Assert.IsType <Double>(value);

            Assert.Equal(42.42, doubleValue);
        }
コード例 #3
0
        public void GetPropertyValue_ReturnCorrect_WhenTypeIsInt64()
        {
            var value = ExternalConfigurationProvider.GetPropertyValue(typeof(Int64), "42");

            var longValue = Assert.IsType <Int64>(value);

            Assert.Equal(42, longValue);
        }
        public void SetUp()
        {
            var store = new Mock <IExternalConfigurationStore>().Object;

            _provider = new ExternalConfigurationProvider(store, "staging", useCache: true);

            _provider.ServiceSettingsCache["staging/redis/"] = new Dictionary <string, string> {
                { "key1", "value1" }
            };
        }
コード例 #5
0
        public void GetPropertyValue_ReturnCorrect_WhenTypeIsCustomClass()
        {
            var value = ExternalConfigurationProvider.GetPropertyValue(typeof(EmailSettings), @"
{
    ""UserName"": ""aidmsu"",
    ""SmtpPort"": 25
}");

            var emailSettings = Assert.IsType <EmailSettings>(value);

            Assert.Equal("aidmsu", emailSettings.UserName);
            Assert.Equal(25, emailSettings.SmtpPort);
        }
コード例 #6
0
        private IConfigurationRoot GetConfiguration()
        {
            var configBuilder = new ConfigurationBuilder()
                                .AddJsonFile("ConsulSettings.json");

            var config = configBuilder.Build();

            try
            {
                var store = new ConsulConfigurationStore(config["Url"], config["Token"]);

                IExternalConfigurationProvider prov =
                    new ExternalConfigurationProvider(store, config["Environment"]);

                var serviceSettings = prov.GetServiceSettingsAsync(config["ServiceName"]).Result;

                if (!string.IsNullOrEmpty(serviceSettings["AppService"]))
                {
                    configBuilder.Sources.Clear();

                    using var jsonStream = new MemoryStream(Encoding.UTF8
                                                            .GetBytes(serviceSettings["AppService"]));

                    configBuilder.AddJsonStream(jsonStream);

                    config = configBuilder.Build();
                }

                else
                {
                    throw new Exception("Consul doesn't contain needed settings");
                }
            }

            catch
            {
                configBuilder.Sources.Clear();
                configBuilder.AddJsonFile("appsettings.json");

                config = configBuilder.Build();
            }

            return(config);
        }
コード例 #7
0
        public void GetPropertyValue_ReturnCorrect_WhenTypeIsList()
        {
            var value = ExternalConfigurationProvider.GetPropertyValue(typeof(List <EmailSettings>), @"[
{
    ""UserName"": ""aidmsu"",
    ""SmtpPort"": 25
},
{
    ""UserName"": ""aidmsu2"",
    ""SmtpPort"": 42
}]");

            var emailSettingsArray = Assert.IsType <List <EmailSettings> >(value);

            Assert.Equal(2, emailSettingsArray.Count);
            Assert.Equal("aidmsu", emailSettingsArray[0].UserName);
            Assert.Equal(25, emailSettingsArray[0].SmtpPort);
            Assert.Equal("aidmsu2", emailSettingsArray[1].UserName);
            Assert.Equal(42, emailSettingsArray[1].SmtpPort);
        }
コード例 #8
0
        static void Main(string[] args)
        {
            var consulUrl   = Properties.Settings.Default.ConsulUrl;
            var consulToken = Properties.Settings.Default.ConsulToken;

            var consulConfig = new ConsulConfig
            {
                Url   = consulUrl,
                Token = consulToken
            };

            var store    = new ConsulConfigurationStore(consulConfig.Url, consulConfig.Token);
            var provider = new ExternalConfigurationProvider(store, "debug");

            var mangoSettingsTask = provider.GetServiceSettingsAsync <MangoConfig>("mango");

            var mangoSettings = mangoSettingsTask.Result;

            Console.WriteLine($"ApiKey : {mangoSettings.ApiKey}");
            Console.WriteLine($"ApiSignature : {mangoSettings.ApiSignature}");

            Console.ReadLine();
        }
コード例 #9
0
        public void GetConsulServiceKey_ReturnsCorrectKey_WhenHostinIsNotSpecified(string hosting)
        {
            var key = ExternalConfigurationProvider.GetFullServiceName("dev", "mango", hosting);

            Assert.Equal("dev/mango/", key);
        }
コード例 #10
0
        public void GetConsulServiceKey_ReturnsCorrectKey_WhenServiceAndHostingAreSpecified()
        {
            var key = ExternalConfigurationProvider.GetFullServiceName("dev", "mango", "azure");

            Assert.Equal("dev/azure/mango/", key);
        }
コード例 #11
0
        public void Ctor_SetsEnvironment(string environment)
        {
            var configurationProvider = new ExternalConfigurationProvider(_mockStore.Object, environment);

            Assert.Equal(environment, configurationProvider.Environment);
        }