Beispiel #1
0
        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);
        }
Beispiel #2
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);
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        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));
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
 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);
        }
Beispiel #13
0
        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);
        }
Beispiel #17
0
        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);
        }
Beispiel #18
0
        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);
        }
Beispiel #22
0
 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);
 }
Beispiel #23
0
 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));
 }