예제 #1
0
        public void PropertiesAreSortedByNumberOnlyFirst()
        {
            var json = @"{
                'setting': {
                    'hello': 'a',
                    'bob': 'b',
                    '42': 'c',
                    '4':'d',
                    '10': 'e',
                    '1text': 'f',
                }
            }";

            var jsonConfigSource = new NewtonsoftJsonConfigurationSource {
                FileProvider = TestStreamHelpers.StringToFileProvider(json)
            };

            var configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.Add(jsonConfigSource);
            var config = configurationBuilder.Build();

            var configurationSection       = config.GetSection("setting");
            var indexConfigurationSections = configurationSection.GetChildren().ToArray();

            Assert.Equal(6, indexConfigurationSections.Count());
            Assert.Equal("4", indexConfigurationSections[0].Key);
            Assert.Equal("10", indexConfigurationSections[1].Key);
            Assert.Equal("42", indexConfigurationSections[2].Key);
            Assert.Equal("1text", indexConfigurationSections[3].Key);
            Assert.Equal("bob", indexConfigurationSections[4].Key);
            Assert.Equal("hello", indexConfigurationSections[5].Key);
        }
예제 #2
0
        public void ImplicitArrayItemReplacement()
        {
            var json1 = @"{
                'ip': [
                    '1.2.3.4',
                    '7.8.9.10',
                    '11.12.13.14'
                ]
            }";

            var json2 = @"{
                'ip': [
                    '15.16.17.18'
                ]
            }";

            var jsonConfigSource1 = new NewtonsoftJsonConfigurationSource {
                FileProvider = TestStreamHelpers.StringToFileProvider(json1)
            };
            var jsonConfigSource2 = new NewtonsoftJsonConfigurationSource {
                FileProvider = TestStreamHelpers.StringToFileProvider(json2)
            };

            var configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.Add(jsonConfigSource1);
            configurationBuilder.Add(jsonConfigSource2);
            var config = configurationBuilder.Build();

            Assert.Equal(3, config.GetSection("ip").GetChildren().Count());
            Assert.Equal("15.16.17.18", config["ip:0"]);
            Assert.Equal("7.8.9.10", config["ip:1"]);
            Assert.Equal("11.12.13.14", config["ip:2"]);
        }
예제 #3
0
        public void ArraysAreKeptInFileOrder()
        {
            var json = @"{
                'setting': [
                    'b',
                    'a',
                    '2'
                ]
            }";

            var jsonConfigSource = new NewtonsoftJsonConfigurationSource {
                FileProvider = TestStreamHelpers.StringToFileProvider(json)
            };

            var configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.Add(jsonConfigSource);
            var config = configurationBuilder.Build();

            var configurationSection       = config.GetSection("setting");
            var indexConfigurationSections = configurationSection.GetChildren().ToArray();

            Assert.Equal(3, indexConfigurationSections.Count());
            Assert.Equal("b", indexConfigurationSections[0].Value);
            Assert.Equal("a", indexConfigurationSections[1].Value);
            Assert.Equal("2", indexConfigurationSections[2].Value);
        }