コード例 #1
0
        public void SameConfigWhenReloadOnChangeIsFalse()
        {
            var testFileProvider = new TestFileProvider(
                new TestFile("Secret1", "SecretValue1"),
                new TestFile("Secret2", "SecretValue2"));

            var config = new ConfigurationBuilder()
                         .AddKeyPerFile(o =>
            {
                o.FileProvider   = testFileProvider;
                o.ReloadOnChange = false;
            }).Build();

            Assert.Equal("SecretValue1", config["Secret1"]);
            Assert.Equal("SecretValue2", config["Secret2"]);

            testFileProvider.ChangeFiles(
                new TestFile("Secret1", "NewSecretValue1"),
                new TestFile("Secret3", "NewSecretValue3"));

            Assert.Equal("SecretValue1", config["Secret1"]);
            Assert.Equal("SecretValue2", config["Secret2"]);
        }
コード例 #2
0
        public async Task RaiseChangeEventAfterStartingWithEmptyDirectoryReloadOnChangeIsTrue()
        {
            var testFileProvider = new TestFileProvider();

            var config = new ConfigurationBuilder()
                         .AddKeyPerFile(o =>
            {
                o.FileProvider   = testFileProvider;
                o.ReloadOnChange = true;
                o.Optional       = true;
            }).Build();

            var changeToken          = config.GetReloadToken();
            var changeTaskCompletion = new TaskCompletionSource <object>();

            changeToken.RegisterChangeCallback(state =>
                                               ((TaskCompletionSource <object>)state).TrySetResult(null), changeTaskCompletion);

            testFileProvider.ChangeFiles(new TestFile("Secret1", "SecretValue1"));

            await changeTaskCompletion.Task;

            Assert.Equal("SecretValue1", config["Secret1"]);
        }