public async Task NoAliasReturnsUnderlyingSettingValue(
            TestAppConfigSettingsSource wrappedSource)
        {
            var source       = new AliasSettingsSource(wrappedSource);
            var settingValue = await source.GetSetting("Logging:Enabled");

            Assert.Equal("true", settingValue);
        }
        public void DuplicateAliasThrowsException(
            TestAppConfigSettingsSource wrappedSource,
            string alias,
            List <string> keys)
        {
            var source = new AliasSettingsSource(wrappedSource);

            source.RegisterAlias(alias, keys);

            Assert.Throws <InvalidOperationException>(
                () => source.RegisterAlias(alias, keys));
        }
        public async Task AliasReturnsNullWhenAllKeysReturnNull(
            TestAppConfigSettingsSource wrappedSource,
            string alias,
            List <string> keys)
        {
            var source = new AliasSettingsSource(wrappedSource);

            source.RegisterAlias(alias, new List <string> {
                "baz", "bar"
            });

            var settingValue = await source.GetSetting(alias);

            Assert.Null(settingValue);
        }
        public async Task AliasReturnsSecondKeyValueWhenFirstKeyValueReturnsNull(
            TestAppConfigSettingsSource wrappedSource,
            string alias,
            List <string> keys)
        {
            var source = new AliasSettingsSource(wrappedSource);

            source.RegisterAlias(alias, new List <string> {
                "baz", "Logging:Enabled"
            });

            var settingValue = await source.GetSetting(alias);

            Assert.Equal("true", settingValue);
        }