Exemplo n.º 1
0
        public void CanSetConfig()
        {
            const string key      = "key1";
            const string keyValue = "value1";

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

            sut.Set(key, keyValue);

            sut.TryGet(key, out var value);
            Assert.Equal(keyValue, value);
        }
Exemplo n.º 2
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.º 3
0
        public void CanBindConfiguratonSection()
        {
            var registry = new FakeConfigurationRegistry();

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

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

            var config = new FakeConfig();

            builder.GetSection("FakeConfig").Bind(config);

            Assert.Equal("abc", config.Setting1);
            Assert.Equal("def", config.Setting2);
        }
Exemplo n.º 4
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);
                }
            }
        }
Exemplo n.º 5
0
        public void CanBindConfiguratonSectionAsList()
        {
            var registry = new FakeConfigurationRegistry();

            registry.SetKeyAsync("my/config/section/objectlist:0:Setting1", "1");
            registry.SetKeyAsync("my/config/section/objectlist:0:Setting2", "2");
            registry.SetKeyAsync("my/config/section/objectlist:1:Setting1", "3");
            registry.SetKeyAsync("my/config/section/objectlist:1:Setting2", "4");

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

            var config = new List <FakeConfig>();

            builder.GetSection("my/config/section/objectlist").Bind(config);

            Assert.Equal(2, config.Count);
            Assert.Equal("1", config[0].Setting1);
            Assert.Equal("2", config[0].Setting2);
            Assert.Equal("3", config[1].Setting1);
            Assert.Equal("4", config[1].Setting2);
        }