public void SetupCallsInOrder() { var services = new ServiceCollection().AddOptions(); var dic = new Dictionary<string, string> { {"Message", "!"}, }; var builder = new ConfigurationBuilder().AddInMemoryCollection(dic); var config = builder.Build(); services.Configure<FakeOptions>(o => o.Message += "Igetstomped"); services.Configure<FakeOptions>(config); services.Configure<FakeOptions>(o => o.Message += "a"); services.ConfigureOptions(typeof(FakeOptionsSetupA)); services.ConfigureOptions(new FakeOptionsSetupB()); services.ConfigureOptions<FakeOptionsSetupC>(); services.Configure<FakeOptions>(o => o.Message += "z"); var service = services.BuildServiceProvider().GetService<IOptions<FakeOptions>>(); Assert.NotNull(service); var options = service.Value; Assert.NotNull(options); Assert.Equal("!aABCz", options.Message); }
public void NamedSetupDoNotCollideWithEachOther() { var services = new ServiceCollection().AddOptions(); var dic = new Dictionary<string, string> { {"Message", "!"}, }; var builder = new ConfigurationBuilder(new MemoryConfigurationSource(dic)); var config = builder.Build(); services.ConfigureOptions(new FakeOptionsSetupB { Name = "2" }); services.Configure<FakeOptions>(o => o.Message += "Z", 10000, "2"); services.ConfigureOptions(new FakeOptionsSetupB { Name = "3" }); services.Configure<FakeOptions>(config, "3"); services.Configure<FakeOptions>(o => o.Message += "z", 10000, "3"); var service = services.BuildServiceProvider().GetService<IOptions<FakeOptions>>(); Assert.NotNull(service); var options = service.Options; Assert.NotNull(options); Assert.Equal("", options.Message); var options2 = service.GetNamedOptions("2"); Assert.NotNull(options2); Assert.Equal("BZ", options2.Message); var options3 = service.GetNamedOptions("3"); Assert.NotNull(options3); Assert.Equal("!Bz", options3.Message); }