Exemplo n.º 1
0
        public void CanReloadConfig()
        {
            var reloaded = false;

            var registry = new FakeConfigurationRegistry();
            var sut      = new ConfigurationRegistryProvider(registry);

            sut.Load();
            sut.GetReloadToken().RegisterChangeCallback(_ => reloaded = true, null);

            registry.FakeReload();

            Assert.True(reloaded);
        }
Exemplo n.º 2
0
        public async void CanReloadOptionDetails()
        {
            var registry = new FakeConfigurationRegistry();
            await registry.SetKeyAsync("FakeConfig:Setting1", "abc");

            await registry.SetKeyAsync("FakeConfig:Setting2", "def");

            var root = new ConfigurationBuilder()
                       .AddConfigurationRegistry(registry)
                       .Build();

            var builder = new WebHostBuilder()
                          .Configure(x => x.UseMvcWithDefaultRoute())
                          .ConfigureServices(x =>
            {
                x.AddMvcCore();
                x.AddOptions();
                x.ConfigureReloadable <FakeConfig>(root, registry);
            });

            using (var server = new TestServer(builder))
            {
                using (var client = server.CreateClient())
                {
                    var response = await client.GetAsync("Fake");

                    var setting = await response.Content.ReadAsStringAsync();

                    Assert.Equal("Config: abc", setting);

                    await registry.SetKeyAsync("FakeConfig:Setting1", "this is the new setting");

                    registry.FakeReload();

                    response = await client.GetAsync("Fake");

                    setting = await response.Content.ReadAsStringAsync();

                    Assert.Equal("Config: this is the new setting", setting);
                }
            }
        }