Exemple #1
0
        public void GetCanReadComplexProperties()
        {
            var dic = new Dictionary <string, string>
            {
                { "Integer", "-2" },
                { "Boolean", "TRUe" },
                { "Nested:Integer", "11" }
            };

            var configManager = new ConfigurationManagerFixture()
                                .WithAppSettings(dic)
                                .Build();

            var config = new AppConfiguration(configManager);

            var options = new ComplexOptions();

            config.Bind(options);

            Assert.Multiple(() =>
            {
                Assert.That(options.Boolean, Is.True);
                Assert.That(-2, Is.EqualTo(options.Integer));
                Assert.That(11, Is.EqualTo(options.Nested.Integer));
            });
        }
Exemple #2
0
        public void GetDefaultsWhenDataDoesNotExist()
        {
            var dic = new Dictionary <string, string>
            {
            };

            var configManager = new ConfigurationManagerFixture()
                                .WithAppSettings(dic)
                                .Build();

            var config = new AppConfiguration(configManager);

            var foo = new ComplexOptions();

            Assert.Multiple(() =>
            {
                Assert.That(config.GetValue <bool>("Boolean"), Is.False);
                Assert.That(0, Is.EqualTo(config.GetValue <int>("Integer")));
                Assert.That(0, Is.EqualTo(config.GetValue <int>("Nested:Integer")));
                Assert.That(config.GetValue <ComplexOptions>("Object"), Is.Null);
                Assert.That(config.GetValue("Boolean", true), Is.True);
                Assert.That(3, Is.EqualTo(config.GetValue("Integer", 3)));
                Assert.That(1, Is.EqualTo(config.GetValue("Nested:Integer", 1)));
                Assert.That(config.GetValue("Object", foo), Is.SameAs(foo));
            });
        }
Exemple #3
0
        public void NonPublicModeBindStillIgnoresReadonly(string property)
        {
            var dic = new Dictionary <string, string>
            {
                { property, "stuff" },
            };

            var configManager = new ConfigurationManagerFixture()
                                .WithAppSettings(dic)
                                .Build();

            var config = new AppConfiguration(configManager);

            var options = new ComplexOptions();

            config.Bind(options, o => o.BindNonPublicProperties = true);

            Assert.That(options.GetType().GetTypeInfo().GetDeclaredProperty(property).GetValue(options), Is.Null);
        }
Exemple #4
0
        public void BindCanSetNonPublicWhenSet(string property)
        {
            var dic = new Dictionary <string, string>
            {
                { property, "stuff" },
            };

            var configManager = new ConfigurationManagerFixture()
                                .WithAppSettings(dic)
                                .Build();

            var config = new AppConfiguration(configManager);

            var options = new ComplexOptions();

            config.Bind(options, o => o.BindNonPublicProperties = true);

            Assert.That("stuff", Is.EqualTo(options.GetType().GetTypeInfo().GetDeclaredProperty(property).GetValue(options)));
        }
Exemple #5
0
        public void BindIgnoresTests(string property)
        {
            var dic = new Dictionary <string, string>
            {
                { property, "stuff" },
            };

            var configManager = new ConfigurationManagerFixture()
                                .WithAppSettings(dic)
                                .Build();

            var config = new AppConfiguration(configManager);

            var options = new ComplexOptions();

            config.Bind(options);

            Assert.That(options.GetType().GetTypeInfo().GetDeclaredProperty(property).GetValue(options), Is.Null);
        }
Exemple #6
0
        public void BindCanReadStaticProperty()
        {
            var dic = new Dictionary <string, string>
            {
                { "StaticProperty", "other stuff" },
            };

            var configManager = new ConfigurationManagerFixture()
                                .WithAppSettings(dic)
                                .Build();

            var config = new AppConfiguration(configManager);

            var instance = new ComplexOptions();

            config.Bind(instance);

            Assert.That("other stuff", Is.EqualTo(ComplexOptions.StaticProperty));
        }
Exemple #7
0
        public void CanBindToObjectProperty()
        {
            var dic = new Dictionary <string, string>
            {
                { "Object", "whatever" }
            };

            var configManager = new ConfigurationManagerFixture()
                                .WithAppSettings(dic)
                                .Build();

            var config = new AppConfiguration(configManager);

            var options = new ComplexOptions();

            config.Bind(options);

            Assert.That("whatever", Is.EqualTo(options.Object));
        }