Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions TestConfig/Controllers/SubsController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,26 @@ namespace TestConfig.Controllers;

[ApiController]
[Route("[controller]")]
public class SubsController(IOptions<SubscriptionTiers> opts) : ControllerBase
public class SubsController(IOptions<AppSettings> opts) : ControllerBase
{
private readonly SubscriptionTier[] _subscriptionTiers = opts.Value.SubscriptionTiers;

[HttpGet]
public SubscriptionTiers Get()
public SubscriptionTier[] Get()
{
TestInjectedData();
return opts.Value;
return _subscriptionTiers;
}

private void TestInjectedData()
{
var free = opts.Value.First(x => x.Tier == "Free");
var free = _subscriptionTiers.First(x => x.Tier == "Free");

// This is failing when it should only have 1 empty string
Assert.AreEqual(1, free.ActiveModules.Count());
Assert.AreEqual(0, free.ActiveModules.Where(x => !string.IsNullOrWhiteSpace(x)).Count());

var other = opts.Value.First(x => x.Tier == "Growth");
var other = _subscriptionTiers.First(x => x.Tier == "Growth");
// Again this is failing when there are only 2 values configured
Assert.AreEqual(2, other.ActiveModules.Count());
}
Expand Down
16 changes: 13 additions & 3 deletions TestConfig/SubscriptionTIers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,19 @@

namespace TestConfig;

public class SubscriptionTiers : List<SubscriptionTier>
public class AppSettings
{
public const string SectionName = "SubscriptionTiers";
public const string SectionName = "AppSettings";

public SubscriptionTier[] SubscriptionTiers { get; set; } = [];
}

public record SubscriptionTier([Required] string Tier, IEnumerable<string> ActiveModules);
public class SubscriptionTier
{
public const string SectionName = "SubscriptionTiers";

[Required]
public string Tier { get; set; } = string.Empty;

public List<string> ActiveModules { get; set; } = new();
}
22 changes: 12 additions & 10 deletions TestConfig/appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,16 @@
}
},
"AllowedHosts": "*",
"SubscriptionTiers": [
{
"Tier": "Free",
"ActiveModules": [ "" ]
},
{
"Tier": "Growth",
"ActiveModules": [ "UnlimitedRefills", "FreeSandwiches" ]
}
]
"AppSettings": {
"SubscriptionTiers": [
{
"Tier": "Free",
"ActiveModules": [ "" ]
},
{
"Tier": "Growth",
"ActiveModules": [ "UnlimitedRefills", "FreeSandwiches" ]
}
]
}
}