public void GetChildrenOfValueTypeTest(object obj)
        {
            var file = $"{Guid.NewGuid()}.json";

            File.WriteAllText(file, JsonConvert.SerializeObject(new { obj }));

            var configuration    = new ConfigurationBuilder().AddJsonFile(file).Build().GetSection("obj");
            var neoConfiguration = new NeoConfigurationBuilder().AddJsonFile(file).Build().GetSection("obj");

            CollectionAssert.AreEqual(configuration.GetChildren().Select(x => x.Path).OrderBy(x => x),
                                      neoConfiguration.GetChildren().Select(x => x.Path).OrderBy(x => x));
            CollectionAssert.AreEqual(configuration.GetChildren().Select(x => x.Key).OrderBy(x => x),
                                      neoConfiguration.GetChildren().Select(x => x.Key).OrderBy(x => x));
            CollectionAssert.AreEqual(configuration.GetChildren().Select(x => x.Value).OrderBy(x => x),
                                      neoConfiguration.GetChildren().Select(x => x.Value).OrderBy(x => x));
        }
        public void GetChildrenTest()
        {
            var file = $"{Guid.NewGuid()}.json";

            File.WriteAllText(file, JsonConvert.SerializeObject(
                                  new { One = 1, Two = "two", Three = new[] { 1, 2, 3 }, Four = new { Five = "five", Six = "six" } }));

            var configuration    = new ConfigurationBuilder().AddJsonFile(file).Build();
            var neoConfiguration = new NeoConfigurationBuilder().AddJsonFile(file).Build();

            CollectionAssert.AreEqual(configuration.GetChildren().Select(x => x.Path).OrderBy(x => x),
                                      neoConfiguration.GetChildren().Select(x => x.Path).OrderBy(x => x));
            CollectionAssert.AreEqual(configuration.GetChildren().Select(x => x.Key).OrderBy(x => x),
                                      neoConfiguration.GetChildren().Select(x => x.Key).OrderBy(x => x));
            CollectionAssert.AreEqual(configuration.GetChildren().Select(x => x.Value).OrderBy(x => x),
                                      neoConfiguration.GetChildren().Select(x => x.Value).OrderBy(x => x));
        }
        public void GetChildrenOfArrayTest()
        {
            var file = $"{Guid.NewGuid()}.json";

            File.WriteAllText(file, JsonConvert.SerializeObject(new { arr = new List <int> {
                                                                          1, 2, 3
                                                                      } }));

            var configuration    = new ConfigurationBuilder().AddJsonFile(file).Build().GetSection("arr");
            var neoConfiguration = new NeoConfigurationBuilder().AddJsonFile(file).Build().GetSection("arr");

            CollectionAssert.AreEqual(configuration.GetChildren().Select(x => x.Path).OrderBy(x => x),
                                      neoConfiguration.GetChildren().Select(x => x.Path).OrderBy(x => x));
            CollectionAssert.AreEqual(configuration.GetChildren().Select(x => x.Key).OrderBy(x => x),
                                      neoConfiguration.GetChildren().Select(x => x.Key).OrderBy(x => x));
            CollectionAssert.AreEqual(configuration.GetChildren().Select(x => x.Value).OrderBy(x => x),
                                      neoConfiguration.GetChildren().Select(x => x.Value).OrderBy(x => x));
        }