Skip to content

Commit

Permalink
Make resolution of [ConnectionString] annotated properties consistent.
Browse files Browse the repository at this point in the history
…Fixes #2034
  • Loading branch information
alrod committed Dec 8, 2018
1 parent 9d31d90 commit ccc20de
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ private BindingDataResolver GetResolver(PropertyInfo propInfo, INameResolver nam
// first try to resolve with connection string
if (connStrAttr != null)
{
return GetConfigurationResolver(str, connStrAttr.Default, propInfo, validator, s => _configuration.GetConnectionStringOrSetting(s));
return GetConfigurationResolver(str, connStrAttr.Default, propInfo, validator, s => _configuration.GetConnectionStringOrSetting(nameResolver.ResolveWholeString(s)));
}

// then app setting
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,9 @@ public class ConnectionStrings : Attribute
[ConnectionString(Default = "nested:path:defaultKey")]
public string ConnectionWithNestedDefaultPath { get; set; }

[ConnectionString]
public string ConnectionNameResolver { get; set; }

[AppSetting(Default = "defaultSetting")]
public string AppSettingWithDefault { get; set; }
}
Expand All @@ -467,7 +470,8 @@ public void ConnectionStringAttribute_ResolvesCorrectly()
Connection = "key",
ConnectionAtRoot = "rootKey",
ConnectionWithNestedPath = "nested:path:key",
ConnectionOverrideDefault = "overridden"
ConnectionOverrideDefault = "overridden",
ConnectionNameResolver = "%nameResolver%"
};

var config = TestHelpers.CreateInMemoryCollection()
Expand All @@ -479,9 +483,11 @@ public void ConnectionStringAttribute_ResolvesCorrectly()
.AddSetting("connectionStrings:overridden", "connectionStringsOverriddenValue")
.AddSetting("connectionStrings:defaultSetting", "fromConnStr")
.AddSetting("defaultSetting", "fromRoot")
.AddSetting("connectionStrings:resolved", "fromNameResolver")
.BuildConfiguration();

var nameResolver = new FakeNameResolver();
nameResolver.Add("nameResolver", "connectionStrings:resolved");
var cloner = new AttributeCloner<ConnectionStrings>(attr, emptyContract, config, nameResolver);
var cloned = cloner.GetNameResolvedAttribute();

Expand All @@ -492,6 +498,7 @@ public void ConnectionStringAttribute_ResolvesCorrectly()
Assert.Equal("nestedPathDefaultValue", cloned.ConnectionWithNestedDefaultPath);
Assert.Equal("fromConnStr", cloned.ConnectionWithDefault);
Assert.Equal("fromRoot", cloned.AppSettingWithDefault);
Assert.Equal("fromNameResolver", cloned.ConnectionNameResolver);
}

[Fact]
Expand Down

0 comments on commit ccc20de

Please sign in to comment.