public void GetPropertyValue_ReturnCorrect_WhenTypeIsString() { var value = ExternalConfigurationProvider.GetPropertyValue(typeof(string), "custom value"); var stringValue = Assert.IsType <string>(value); Assert.Equal("custom value", stringValue); }
public void GetPropertyValue_ReturnCorrect_WhenTypeIsDouble() { var value = ExternalConfigurationProvider.GetPropertyValue(typeof(Double), "42.42"); var doubleValue = Assert.IsType <Double>(value); Assert.Equal(42.42, doubleValue); }
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" } }; }
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); }
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); }
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); }
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(); }
public void GetConsulServiceKey_ReturnsCorrectKey_WhenHostinIsNotSpecified(string hosting) { var key = ExternalConfigurationProvider.GetFullServiceName("dev", "mango", hosting); Assert.Equal("dev/mango/", key); }
public void GetConsulServiceKey_ReturnsCorrectKey_WhenServiceAndHostingAreSpecified() { var key = ExternalConfigurationProvider.GetFullServiceName("dev", "mango", "azure"); Assert.Equal("dev/azure/mango/", key); }
public void Ctor_SetsEnvironment(string environment) { var configurationProvider = new ExternalConfigurationProvider(_mockStore.Object, environment); Assert.Equal(environment, configurationProvider.Environment); }