コード例 #1
0
        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 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());
        }
コード例 #3
0
        public void ListBindingWithNull()
        {
            var builder       = new NeoConfigurationBuilder();
            var configuration = builder.Build();

            var services = new ServiceCollection();

            services.AddConfig <ListConfig>(configuration);
            var serviceProvider = services.BuildServiceProvider();

            var config = serviceProvider.GetRequiredService <ListConfig>();

            Assert.IsNotNull(config);
            Assert.IsEmpty(config);
        }
コード例 #4
0
        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);
        }