public void AddJsonTest(object a, object b, object merged) { var builder = new NeoConfigurationBuilder(); builder.AddJson(JsonConvert.SerializeObject(a)); builder.AddJson(JsonConvert.SerializeObject(b)); Assert.AreEqual(JsonConvert.SerializeObject(merged), (builder.Build() as INeoConfiguration)?.ToJson()); }
public void AddKeyedConfigs() { var builder = new NeoConfigurationBuilder(); var myConfigs = new Dictionary <string, MyConfig> { { "one", new MyConfig { Name = "One", SubConfig = new MySubConfig { SubName = "Sub One" } } }, { "two", new MyConfig { Name = "Two", SubConfig = new MySubConfig { SubName = "Sub Two" } } } }; builder.AddJson(JsonConvert.SerializeObject(myConfigs)); var configuration = builder.Build(); var services = new ServiceCollection(); services.AddKeyedConfig <MyConfig>(configuration); var serviceProvider = services.BuildServiceProvider(); var configs = serviceProvider.GetRequiredService <IKeyedConfigs <MyConfig> >(); CollectionAssert.AreEqual(ToEnumerable(myConfigs), ToEnumerable(configs)); Assert.IsNotNull(serviceProvider.GetRequiredService <IReadOnlyDictionary <string, MyConfig> >()); Assert.IsNotNull(serviceProvider.GetRequiredService <IConfig>()); IEnumerable <string> ToEnumerable(IReadOnlyDictionary <string, MyConfig> dict) => dict.OrderBy(x => x.Key).Select(kv => $"{kv.Key} {kv.Value}"); }
public void ListBinding(string value, int count) { var builder = new NeoConfigurationBuilder(); builder.AddJson($"{{\"{nameof(ListConfig)}\": {value}}}"); var configuration = builder.Build(); var services = new ServiceCollection(); services.AddConfig <ListConfig>(configuration); var serviceProvider = services.BuildServiceProvider(); var config = serviceProvider.GetRequiredService <ListConfig>(); Assert.AreEqual(count, config.Count); }