public void Parser_should_report_missing_value() { var options = new ComplexOptions(); var parser = new CommandLine.Parser(); var result = parser.ParseArguments(new[] { "-i", "-o" }, options); result.Should().BeFalse(); options.LastParserState.Errors.Count.Should().BeGreaterThan(0); }
public void Multiple_required_fields_with_more_than_one_required_field_not_specified_reports_all_missing_required_fields() { var options = new ComplexOptions(); using (var writer = new StringWriter()) { new CommandLine.Parser(new ParserSettings(false, false, writer)).ParseArguments(new string[0], options); options.LastParserState.Errors.Should().HaveCount(n => n == 2); } }
public void CanReadStaticProperty() { var dic = new Dictionary <string, string> { { "StaticProperty", "stuff" }, }; var builder = new ConfigurationBuilder(new MemoryConfigurationSource(dic)); var config = builder.Build(); var options = new ComplexOptions(); config.Bind(options); Assert.Equal("stuff", ComplexOptions.StaticProperty); }
public void CanReadStaticProperty() { var dic = new Dictionary <string, string> { { "StaticProperty", "stuff" }, }; var builder = new ConfigurationBuilder().AddInMemoryCollection(dic); var config = builder.Build(); var options = new ComplexOptions(); ConfigurationBinder.Bind(config, options); Assert.Equal("stuff", ComplexOptions.StaticProperty); }
public void ShouldBeIgnoredTests(string property) { var dic = new Dictionary <string, string> { { property, "stuff" }, }; var builder = new ConfigurationBuilder().AddInMemoryCollection(dic); var config = builder.Build(); var options = new ComplexOptions(); ConfigurationBinder.Bind(config, options); Assert.Null(options.GetType().GetProperty(property).GetValue(options)); }
public void ShouldBeIgnoredTests(string property) { var dic = new Dictionary <string, string> { { property, "stuff" }, }; var builder = new ConfigurationBuilder(new MemoryConfigurationSource(dic)); var config = builder.Build(); var options = new ComplexOptions(); config.Bind(options); Assert.Null(options.GetType().GetTypeInfo().GetDeclaredProperty(property).GetValue(options)); }
public void ShouldBeIgnoredTests(string property) { var dic = new Dictionary <string, string> { { property, "stuff" }, }; var config = new Configuration { new MemoryConfigurationSource(dic) }; var options = new ComplexOptions(); OptionsServices.ReadProperties(options, config); Assert.Null(options.GetType().GetProperty(property).GetValue(options)); }
public void BindCanReadStaticProperty() { var dic = new Dictionary <string, string> { { "StaticProperty", "other stuff" }, }; var builder = new ConfigurationBuilder(new MemoryConfigurationProvider(dic)); var config = builder.Build(); var instance = new ComplexOptions(); config.Bind(instance); Assert.Equal("other stuff", ComplexOptions.StaticProperty); }
public void CanReadComplexProperties() { var dic = new Dictionary<string, string> { {"Integer", "-2"}, {"Boolean", "TRUe"}, {"Nested:Integer", "11"} }; var builder = new ConfigurationBuilder().AddInMemoryCollection(dic); var config = builder.Build(); var options = new ComplexOptions(); ConfigurationBinder.Bind(config, options); Assert.True(options.Boolean); Assert.Equal(-2, options.Integer); Assert.Equal(11, options.Nested.Integer); }
public void BindCanSetNonPublicWhenSet(string property) { var dic = new Dictionary <string, string> { { property, "stuff" }, }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(dic); var config = configurationBuilder.Build(); var options = new ComplexOptions(); config.FastBind(options, o => o.BindNonPublicProperties = true); Assert.AreEqual("stuff", options.GetType().GetTypeInfo().GetDeclaredProperty(property).GetValue(options)); }
public void NonPublicModeBindStillIgnoresReadonly(string property) { var dic = new Dictionary <string, string> { { property, "stuff" }, }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(dic); var config = configurationBuilder.Build(); var options = new ComplexOptions(); config.FastBind(options, o => o.BindNonPublicProperties = true); Assert.IsNull(options.GetType().GetTypeInfo().GetDeclaredProperty(property).GetValue(options)); }
public void GetCanReadStaticProperty() { var dic = new Dictionary <string, string> { { "StaticProperty", "stuff" }, }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(dic); var config = configurationBuilder.Build(); var options = new ComplexOptions(); config.FastBind(options); Assert.AreEqual("stuff", ComplexOptions.StaticProperty); }
public void CanReadComplexProperties() { var dic = new Dictionary <string, string> { { "Integer", "-2" }, { "Boolean", "TRUe" }, { "Nested:Integer", "11" } }; var builder = new ConfigurationBuilder().AddInMemoryCollection(dic); var config = builder.Build(); var options = new ComplexOptions(); ConfigurationBinder.Bind(config, options); Assert.True(options.Boolean); Assert.Equal(-2, options.Integer); Assert.Equal(11, options.Nested.Integer); }
public void BindIgnoresTests(string property) { var dic = new Dictionary <string, string> { { property, "stuff" }, }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(dic); var config = configurationBuilder.Build(); var options = new ComplexOptions(); config.FastBind(options); Assert.IsNull(options.GetType().GetTypeInfo().GetDeclaredProperty(property).GetValue(options)); }
public void CanBindToObjectProperty() { var dic = new Dictionary <string, string> { { "Object", "whatever" } }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(dic); var config = configurationBuilder.Build(); var options = new ComplexOptions(); config.FastBind(options); Assert.AreEqual("whatever", options.Object); }
public void BindCanReadStaticProperty() { var dic = new Dictionary <string, string> { { "StaticProperty", "other stuff" }, }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(dic); var config = configurationBuilder.Build(); var instance = new ComplexOptions(); config.HzBind(instance); Assert.AreEqual("other stuff", ComplexOptions.StaticProperty); }
public void CanReadComplexProperties() { var dic = new Dictionary <string, string> { { "Integer", "-2" }, { "Boolean", "TRUe" }, { "Nested:Integer", "11" } }; var config = new Configuration { new MemoryConfigurationSource(dic) }; var options = new ComplexOptions(); OptionsServices.ReadProperties(options, config); Assert.True(options.Boolean); Assert.Equal(-2, options.Integer); Assert.Equal(11, options.Nested.Integer); }
public void BindCanReadComplexProperties() { var dic = new Dictionary <string, string> { { "Integer", "-2" }, { "Boolean", "TRUe" }, { "Nested:Integer", "11" } }; var builder = new ConfigurationBuilder(new MemoryConfigurationProvider(dic)); var config = builder.Build(); var instance = new ComplexOptions(); config.Bind(instance); Assert.True(instance.Boolean); Assert.Equal(-2, instance.Integer); Assert.Equal(11, instance.Nested.Integer); }
public void BindCanReadComplexProperties() { var dic = new Dictionary <string, string> { { "Integer", "-2" }, { "Boolean", "TRUe" }, { "Nested:Integer", "11" } }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(dic); var config = configurationBuilder.Build(); var instance = new ComplexOptions(); config.FastBind(instance); Assert.IsTrue(instance.Boolean); Assert.AreEqual(-2, instance.Integer); Assert.AreEqual(11, instance.Nested.Integer); }
public void GetDefaultsWhenDataDoesNotExist() { var dic = new Dictionary <string, string> { }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(dic); var config = configurationBuilder.Build(); Assert.IsFalse(config.FastGetValue <bool>("Boolean")); Assert.AreEqual(0, config.FastGetValue <int>("Integer")); Assert.AreEqual(0, config.FastGetValue <int>("Nested:Integer")); Assert.IsNull(config.FastGetValue <ComplexOptions>("Object")); Assert.IsTrue(config.FastGetValue("Boolean", true)); Assert.AreEqual(3, config.FastGetValue("Integer", 3)); Assert.AreEqual(1, config.FastGetValue("Nested:Integer", 1)); var foo = new ComplexOptions(); Assert.AreSame(config.FastGetValue("Object", foo), foo); }
public void ThrowsIfPropertyInConfigMissingInNestedModel() { var dic = new Dictionary <string, string> { { "Nested:ThisDoesNotExistInTheModel", "42" }, { "Integer", "-2" }, { "Boolean", "TRUe" }, { "Nested:Integer", "11" } }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(dic); var config = configurationBuilder.Build(); var instance = new ComplexOptions(); string expectedMessage = string.Format(Strings.Error_MissingConfig, nameof(FastBinderOptions.ErrorOnUnknownConfiguration), nameof(FastBinderOptions), typeof(NestedOptions), "'ThisDoesNotExistInTheModel'"); var ex = Assert.ThrowsException <InvalidOperationException>( () => config.FastBind(instance, o => o.ErrorOnUnknownConfiguration = true)); Assert.AreEqual(expectedMessage, ex.Message); }
public void CanReadStaticProperty() { var dic = new Dictionary<string, string> { {"StaticProperty", "stuff"}, }; var builder = new ConfigurationBuilder().AddInMemoryCollection(dic); var config = builder.Build(); var options = new ComplexOptions(); ConfigurationBinder.Bind(config, options); Assert.Equal("stuff", ComplexOptions.StaticProperty); }
public void ShouldBeIgnoredTests(string property) { var dic = new Dictionary<string, string> { {property, "stuff"}, }; var builder = new ConfigurationBuilder().AddInMemoryCollection(dic); var config = builder.Build(); var options = new ComplexOptions(); ConfigurationBinder.Bind(config, options); Assert.Null(options.GetType().GetProperty(property).GetValue(options)); }