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)); }); }
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)); }); }
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); }
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))); }
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); }
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)); }
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)); }