Exemplo n.º 1
0
        public async Task RaiseChangeEventWhenDirectoryClearsReloadOnChangeIsTrue()
        {
            var testFileProvider = new TestFileProvider(
                new TestFile("Secret1", "SecretValue1"),
                new TestFile("Secret2", "SecretValue2"));

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

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

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

            testFileProvider.ChangeFiles();

            await changeTaskCompletion.Task;

            Assert.Empty(config.AsEnumerable());
        }
        public void NoFilesReloadWhenAddedFiles()
        {
            var testFileProvider = new TestFileProvider();

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

            Assert.Empty(config.AsEnumerable());

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

            Assert.Equal("SecretValue1", config["Secret1"]);
            Assert.Equal("SecretValue2", config["Secret2"]);
        }
Exemplo n.º 3
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"]);
        }
Exemplo n.º 4
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"]);
        }