public void ArrayInNestedOptionBinding() { var input = new Dictionary <string, string> { { "ObjectArray:0:ArrayInNestedOption:0", "0" }, { "ObjectArray:0:ArrayInNestedOption:1", "1" }, { "ObjectArray:1:ArrayInNestedOption:0", "10" }, { "ObjectArray:1:ArrayInNestedOption:1", "11" }, { "ObjectArray:1:ArrayInNestedOption:2", "12" }, }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(input); var config = configurationBuilder.Build(); var options = new OptionsWithArrays(); config.FastBind(options); Assert.AreEqual(2, options.ObjectArray.Length); Assert.AreEqual(2, options.ObjectArray[0].ArrayInNestedOption.Length); Assert.AreEqual(3, options.ObjectArray[1].ArrayInNestedOption.Length); Assert.AreEqual(0, options.ObjectArray[0].ArrayInNestedOption[0]); Assert.AreEqual(1, options.ObjectArray[0].ArrayInNestedOption[1]); Assert.AreEqual(10, options.ObjectArray[1].ArrayInNestedOption[0]); Assert.AreEqual(11, options.ObjectArray[1].ArrayInNestedOption[1]); Assert.AreEqual(12, options.ObjectArray[1].ArrayInNestedOption[2]); }
public void JaggedArrayBinding() { var input = new Dictionary <string, string> { { "JaggedArray:0:0", "00" }, { "JaggedArray:0:1", "01" }, { "JaggedArray:1:0", "10" }, { "JaggedArray:1:1", "11" }, { "JaggedArray:1:2", "12" }, }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(input); var config = configurationBuilder.Build(); var options = new OptionsWithArrays(); config.FastBind(options); Assert.AreEqual(2, options.JaggedArray.Length); Assert.AreEqual(2, options.JaggedArray[0].Length); Assert.AreEqual(3, options.JaggedArray[1].Length); Assert.AreEqual("00", options.JaggedArray[0][0]); Assert.AreEqual("01", options.JaggedArray[0][1]); Assert.AreEqual("10", options.JaggedArray[1][0]); Assert.AreEqual("11", options.JaggedArray[1][1]); Assert.AreEqual("12", options.JaggedArray[1][2]); }
public void BindAlreadyInitializedArray() { var input = new Dictionary <string, string> { { "AlreadyInitializedArray:0", "val0" }, { "AlreadyInitializedArray:1", "val1" }, { "AlreadyInitializedArray:2", "val2" }, { "AlreadyInitializedArray:x", "valx" } }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(input); var config = configurationBuilder.Build(); var options = new OptionsWithArrays(); config.FastBind(options); var array = options.AlreadyInitializedArray; Assert.AreEqual(7, array.Length); Assert.AreEqual(OptionsWithArrays.InitialValue, array[0]); Assert.IsNull(array[1]); Assert.IsNull(array[2]); Assert.AreEqual("val0", array[3]); Assert.AreEqual("val1", array[4]); Assert.AreEqual("val2", array[5]); Assert.AreEqual("valx", array[6]); }
public void BindStringArray() { var input = new Dictionary <string, string> { { "StringArray:0", "val0" }, { "StringArray:1", "val1" }, { "StringArray:2", "val2" }, { "StringArray:x", "valx" } }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(input); var config = configurationBuilder.Build(); var instance = new OptionsWithArrays(); config.FastBind(instance); var array = instance.StringArray; Assert.AreEqual(4, array.Length); Assert.AreEqual("val0", array[0]); Assert.AreEqual("val1", array[1]); Assert.AreEqual("val2", array[2]); Assert.AreEqual("valx", array[3]); }
public void BindAlreadyInitializedArray() { var input = new Dictionary <string, string> { { "AlreadyInitializedArray:0", "val0" }, { "AlreadyInitializedArray:1", "val1" }, { "AlreadyInitializedArray:2", "val2" }, { "AlreadyInitializedArray:x", "valx" } }; var builder = new ConfigurationBuilder(new MemoryConfigurationProvider(input)); var config = builder.Build(); var options = new OptionsWithArrays(); config.Bind(options); var array = options.AlreadyInitializedArray; Assert.Equal(7, array.Length); Assert.Equal(OptionsWithArrays.InitialValue, array[0]); Assert.Equal(null, array[1]); Assert.Equal(null, array[2]); Assert.Equal("val0", array[3]); Assert.Equal("val1", array[4]); Assert.Equal("val2", array[5]); Assert.Equal("valx", array[6]); }
public void UnsupportedMultidimensionalArrays() { var input = new Dictionary <string, string> { { "DimensionalArray:0:0", "a" }, { "DimensionalArray:0:1", "b" } }; var builder = new ConfigurationBuilder(new MemoryConfigurationProvider(input)); var config = builder.Build(); var options = new OptionsWithArrays(); var exception = Assert.Throws <InvalidOperationException>( () => config.Bind(options)); Assert.Equal( Resources.FormatError_UnsupportedMultidimensionalArray(typeof(string[, ])), exception.Message); }
public void UnsupportedMultidimensionalArrays() { var input = new Dictionary <string, string> { { "DimensionalArray:0:0", "a" }, { "DimensionalArray:0:1", "b" } }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(input); var config = configurationBuilder.Build(); var options = new OptionsWithArrays(); var exception = Assert.Throws <InvalidOperationException>( () => config.HzBind(options)); //Assert.AreEqual( // Resources.FormatError_UnsupportedMultidimensionalArray(typeof(string[,])), // exception.Message); }