public void NestedListsBinding()
        {
            var input = new Dictionary <string, string>
            {
                { "NestedLists:0:0", "val00" },
                { "NestedLists:0:1", "val01" },
                { "NestedLists:1:0", "val10" },
                { "NestedLists:1:1", "val11" },
                { "NestedLists:1:2", "val12" },
            };

            var configurationBuilder = new ConfigurationBuilder();

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

            var options = new OptionsWithLists();

            config.FastBind(options);

            Assert.AreEqual(2, options.NestedLists.Count);
            Assert.AreEqual(2, options.NestedLists[0].Count);
            Assert.AreEqual(3, options.NestedLists[1].Count);

            Assert.AreEqual("val00", options.NestedLists[0][0]);
            Assert.AreEqual("val01", options.NestedLists[0][1]);
            Assert.AreEqual("val10", options.NestedLists[1][0]);
            Assert.AreEqual("val11", options.NestedLists[1][1]);
            Assert.AreEqual("val12", options.NestedLists[1][2]);
        }
        public void ListInNestedOptionBinding()
        {
            var input = new Dictionary <string, string>
            {
                { "ObjectList:0:ListInNestedOption:0", "00" },
                { "ObjectList:0:ListInNestedOption:1", "01" },
                { "ObjectList:1:ListInNestedOption:0", "10" },
                { "ObjectList:1:ListInNestedOption:1", "11" },
                { "ObjectList:1:ListInNestedOption:2", "12" },
            };

            var configurationBuilder = new ConfigurationBuilder();

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

            var options = new OptionsWithLists();

            config.FastBind(options);

            Assert.AreEqual(2, options.ObjectList.Count);
            Assert.AreEqual(2, options.ObjectList[0].ListInNestedOption.Count);
            Assert.AreEqual(3, options.ObjectList[1].ListInNestedOption.Count);

            Assert.AreEqual("00", options.ObjectList[0].ListInNestedOption[0]);
            Assert.AreEqual("01", options.ObjectList[0].ListInNestedOption[1]);
            Assert.AreEqual("10", options.ObjectList[1].ListInNestedOption[0]);
            Assert.AreEqual("11", options.ObjectList[1].ListInNestedOption[1]);
            Assert.AreEqual("12", options.ObjectList[1].ListInNestedOption[2]);
        }
        public void AlreadyInitializedListInterfaceBinding()
        {
            var input = new Dictionary <string, string>
            {
                { "AlreadyInitializedListInterface:0", "val0" },
                { "AlreadyInitializedListInterface:1", "val1" },
                { "AlreadyInitializedListInterface:2", "val2" },
                { "AlreadyInitializedListInterface:x", "valx" }
            };

            var configurationBuilder = new ConfigurationBuilder();

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

            var options = new OptionsWithLists();

            config.FastBind(options);

            var list = options.AlreadyInitializedListInterface;

            Assert.AreEqual(5, list.Count);

            Assert.AreEqual("This was here too", list[0]);
            Assert.AreEqual("val0", list[1]);
            Assert.AreEqual("val1", list[2]);
            Assert.AreEqual("val2", list[3]);
            Assert.AreEqual("valx", list[4]);
        }
        public void CustomListBinding()
        {
            var input = new Dictionary <string, string>
            {
                { "CustomList:0", "val0" },
                { "CustomList:1", "val1" },
                { "CustomList:2", "val2" },
                { "CustomList:x", "valx" }
            };

            var configurationBuilder = new ConfigurationBuilder();

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

            var options = new OptionsWithLists();

            config.FastBind(options);

            var list = options.CustomList;

            Assert.AreEqual(4, list.Count);

            Assert.AreEqual("val0", list[0]);
            Assert.AreEqual("val1", list[1]);
            Assert.AreEqual("val2", list[2]);
            Assert.AreEqual("valx", list[3]);
        }
        public void BindIntList()
        {
            var input = new Dictionary <string, string>
            {
                { "IntList:0", "42" },
                { "IntList:1", "43" },
                { "IntList:2", "44" },
                { "IntList:x", "45" }
            };

            var configurationBuilder = new ConfigurationBuilder();

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

            var options = new OptionsWithLists();

            config.FastBind(options);

            var list = options.IntList;

            Assert.AreEqual(4, list.Count);

            Assert.AreEqual(42, list[0]);
            Assert.AreEqual(43, list[1]);
            Assert.AreEqual(44, list[2]);
            Assert.AreEqual(45, list[3]);
        }
        public void BindStringList()
        {
            var input = new Dictionary <string, string>
            {
                { "StringList:0", "val0" },
                { "StringList:1", "val1" },
                { "StringList:2", "val2" },
                { "StringList:x", "valx" }
            };

            var builder = new ConfigurationBuilder(new MemoryConfigurationProvider(input));
            var config  = builder.Build();
            var options = new OptionsWithLists();

            config.Bind(options);

            var list = options.StringList;

            Assert.Equal(4, list.Count);

            Assert.Equal("val0", list[0]);
            Assert.Equal("val1", list[1]);
            Assert.Equal("val2", list[2]);
            Assert.Equal("valx", list[3]);
        }
예제 #7
0
        public void AlreadyInitializedListBinding()
        {
            var input = new Dictionary <string, string>
            {
                { "AlreadyInitializedList:0", "val0" },
                { "AlreadyInitializedList:1", "val1" },
                { "AlreadyInitializedList:2", "val2" },
                { "AlreadyInitializedList:x", "valx" }
            };

            var builder = new ConfigurationBuilder(new MemoryConfigurationSource(input));
            var config  = builder.Build();

            var options = new OptionsWithLists();

            config.Bind(options);

            var list = options.AlreadyInitializedList;

            Assert.Equal(5, list.Count);

            Assert.Equal("This was here before", list[0]);
            Assert.Equal("val0", list[1]);
            Assert.Equal("val1", list[2]);
            Assert.Equal("val2", list[3]);
            Assert.Equal("valx", list[4]);
        }
예제 #8
0
        public void IntListBinding()
        {
            var input = new Dictionary <string, string>
            {
                { "IntList:0", "42" },
                { "IntList:1", "43" },
                { "IntList:2", "44" },
                { "IntList:x", "45" }
            };

            var builder = new ConfigurationBuilder(new MemoryConfigurationSource(input));
            var config  = builder.Build();

            var options = new OptionsWithLists();

            config.Bind(options);

            var list = options.IntList;

            Assert.Equal(4, list.Count);

            Assert.Equal(42, list[0]);
            Assert.Equal(43, list[1]);
            Assert.Equal(44, list[2]);
            Assert.Equal(45, list[3]);
        }
예제 #9
0
        public void ObjectListBinding()
        {
            var input = new Dictionary <string, string>
            {
                { "ObjectList:0:Integer", "30" },
                { "ObjectList:1:Integer", "31" },
                { "ObjectList:2:Integer", "32" },
            };

            var builder = new ConfigurationBuilder(new MemoryConfigurationSource(input));
            var config  = builder.Build();
            var options = new OptionsWithLists();

            config.Bind(options);

            Assert.Equal(3, options.ObjectList.Count);

            Assert.Equal(30, options.ObjectList[0].Integer);
            Assert.Equal(31, options.ObjectList[1].Integer);
            Assert.Equal(32, options.ObjectList[2].Integer);
        }