public void AddPlaceholderResolver_AddsPlaceholderResolverSourceToList()
        {
            // Arrange
            var configurationBuilder = new ConfigurationBuilder();

            // Act and Assert
            configurationBuilder.AddPlaceholderResolver();

            PlaceholderResolverSource placeholderSource =
                configurationBuilder.Sources.OfType <PlaceholderResolverSource>().SingleOrDefault();

            Assert.NotNull(placeholderSource);
        }
        /// <summary>
        /// Add a placeholder resolver configuration source to the <see cref="ConfigurationBuilder"/>. The placeholder resolver source will capture and wrap all
        /// the existing sources <see cref="IConfigurationSource"/> contained in the builder.  The newly created source will then replace the existing sources
        /// and provide placeholder resolution for the configuration. Typically you will want to add this configuration source as the last one so that you wrap all
        /// of the applications configuration sources with place holder resolution.
        /// </summary>
        /// <param name="builder">the configuration builder</param>
        /// <param name="loggerFactory">the logger factory to use</param>
        /// <returns>builder</returns>
        public static IConfigurationBuilder AddPlaceholderResolver(this IConfigurationBuilder builder, ILoggerFactory?loggerFactory = null)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            var resolver = new PlaceholderResolverSource(builder.Sources, loggerFactory);

            builder.Sources.Clear();

            return(builder.Add(resolver));
        }
        public void Build_ReturnsProvider()
        {
            var memSource = new MemoryConfigurationSource();
            IList <IConfigurationSource> sources = new List <IConfigurationSource>()
            {
                memSource
            };

            var source   = new PlaceholderResolverSource(sources, null);
            var provider = source.Build(new ConfigurationBuilder());

            Assert.IsType <PlaceholderResolverProvider>(provider);
        }
示例#4
0
        public void Build__ReturnsProvider()
        {
            // Arrange
            var memSource = new MemoryConfigurationSource();
            IList <IConfigurationSource> sources = new List <IConfigurationSource> {
                memSource
            };
            ILoggerFactory factory = new LoggerFactory();

            // Act and Assert
            var source   = new PlaceholderResolverSource(sources, factory);
            var provider = source.Build(new ConfigurationBuilder());

            Assert.IsType <PlaceholderResolverProvider>(provider);
        }
示例#5
0
        public void Constructors__InitializesProperties()
        {
            var memSource = new MemoryConfigurationSource();
            IList <IConfigurationSource> sources = new List <IConfigurationSource> {
                memSource
            };
            ILoggerFactory factory = new LoggerFactory();

            var source = new PlaceholderResolverSource(sources, factory);

            Assert.Equal(factory, source._loggerFactory);
            Assert.NotNull(source._sources);
            Assert.Single(source._sources);
            Assert.NotSame(sources, source._sources);
            Assert.Contains(memSource, source._sources);
        }