Пример #1
0
        public void CanBindIConfigurationSection()
        {
            var dic = new Dictionary <string, string>
            {
                { "Section:Integer", "-2" },
                { "Section:Boolean", "TRUe" },
                { "Section:Nested:Integer", "11" },
                { "Section:Virtual", "Sup" }
            };
            var configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.AddInMemoryCollection(dic);
            var config = configurationBuilder.Build();

            var options = new ConfigurationInterfaceOptions();

            config.Bind(options);

            var childOptions = new DerivedOptions();

            options.Section.Bind(childOptions);

            Assert.True(childOptions.Boolean);
            Assert.Equal(-2, childOptions.Integer);
            Assert.Equal(11, childOptions.Nested.Integer);
            Assert.Equal("Derived:Sup", childOptions.Virtual);

            Assert.Equal("Section", options.Section.Key);
            Assert.Equal("Section", options.Section.Path);
            Assert.Equal(null, options.Section.Value);
        }
        public void GetCanReadInheritedProperties()
        {
            var dic = new Dictionary <string, string>
            {
                { "Integer", "-2" },
                { "Boolean", "TRUe" },
                { "Nested:Integer", "11" },
                { "Virtual", "Sup" }
            };
            var configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.AddInMemoryCollection(dic);
            var config = configurationBuilder.Build();

            var options = new DerivedOptions();

            config.Bind(options);

            Assert.True(options.Boolean);
            Assert.Equal(-2, options.Integer);
            Assert.Equal(11, options.Nested.Integer);
            Assert.Equal("Derived:Sup", options.Virtual);
        }
        public void CanBindWithKeyOverload()
        {
            var dic = new Dictionary <string, string>
            {
                { "Section:Integer", "-2" },
                { "Section:Boolean", "TRUe" },
                { "Section:Nested:Integer", "11" },
                { "Section:Virtual", "Sup" }
            };
            var configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.AddInMemoryCollection(dic);
            var config = configurationBuilder.Build();

            var options = new DerivedOptions();

            config.Bind("Section", options);

            Assert.True(options.Boolean);
            Assert.Equal(-2, options.Integer);
            Assert.Equal(11, options.Nested.Integer);
            Assert.Equal("Derived:Sup", options.Virtual);
        }