/// <summary>
        /// Applies the extension configuration section loading behavior to the extensions.
        /// </summary>
        /// <param name="extensions">The extensions.</param>
        public void Behave(IEnumerable <IExtension> extensions)
        {
            Ensure.ArgumentNotNull(extensions, "extensions");

            foreach (IExtension extension in extensions)
            {
                IHaveConfigurationSectionName sectionNameProvider = this.factory.CreateHaveConfigurationSectionName(extension);
                ILoadConfigurationSection     sectionProvider     = this.factory.CreateLoadConfigurationSection(extension);

                ExtensionConfigurationSection section = GetExtensionConfigurationSection(sectionNameProvider, sectionProvider);

                if (!section.Configuration.OfType <ExtensionSettingsElement>().Any())
                {
                    continue;
                }

                IConsumeConfiguration consumer = this.factory.CreateConsumeConfiguration(extension);

                FillConsumerConfiguration(section, consumer);

                IHaveConversionCallbacks       conversionCallbacksProvider       = this.factory.CreateHaveConversionCallbacks(extension);
                IHaveDefaultConversionCallback defaultConversionCallbackProvider = this.factory.CreateHaveDefaultConversionCallback(extension);

                this.assignExtensionProperties.Assign(this.reflectExtensionProperties, extension, consumer, conversionCallbacksProvider, defaultConversionCallbackProvider);
            }
        }
Esempio n. 2
0
        public ConfigurationSectionBehaviorTest()
        {
            this.consumer            = A.Fake <IConsumeConfigurationSection>();
            this.sectionNameProvider = A.Fake <IHaveConfigurationSectionName>();
            this.sectionProvider     = A.Fake <ILoadConfigurationSection>();

            this.factory = A.Fake <IConfigurationSectionBehaviorFactory>();
            this.AutoStubFactory();

            this.extensions = new List <IExtension> {
                A.Fake <IExtension>(), A.Fake <IExtension>(),
            };

            this.testee = new ConfigurationSectionBehavior(this.factory);
        }
Esempio n. 3
0
        /// <inheritdoc />
        public void Behave(IEnumerable <IExtension> extensions)
        {
            Ensure.ArgumentNotNull(extensions, "extensions");

            foreach (IExtension extension in extensions)
            {
                IConsumeConfigurationSection  consumer            = this.factory.CreateConsumeConfigurationSection(extension);
                IHaveConfigurationSectionName sectionNameProvider = this.factory.CreateHaveConfigurationSectionName(extension);
                ILoadConfigurationSection     sectionProvider     = this.factory.CreateLoadConfigurationSection(extension);

                string sectionName           = sectionNameProvider.SectionName;
                ConfigurationSection section = sectionProvider.GetSection(sectionName);

                consumer.Apply(section);
            }
        }
        public ExtensionConfigurationSectionBehaviorTest()
        {
            this.consumer = A.Fake <IConsumeConfiguration>();
            this.extensionPropertyReflector        = A.Fake <IReflectExtensionProperties>();
            this.sectionNameProvider               = A.Fake <IHaveConfigurationSectionName>();
            this.sectionProvider                   = A.Fake <ILoadConfigurationSection>();
            this.conversionCallbacksProvider       = A.Fake <IHaveConversionCallbacks>();
            this.defaultConversionCallbackProvider = A.Fake <IHaveDefaultConversionCallback>();
            this.assigner = A.Fake <IAssignExtensionProperties>();

            this.factory = A.Fake <IExtensionConfigurationSectionBehaviorFactory>();
            this.SetupAutoStubFactory();

            this.extensions = new List <IExtension> {
                A.Fake <IExtension>(),
            };

            this.testee = new ExtensionConfigurationSectionBehavior(this.factory);
        }
        private static ExtensionConfigurationSection GetExtensionConfigurationSection(IHaveConfigurationSectionName sectionNameProvider, ILoadConfigurationSection sectionProvider)
        {
            string sectionName = sectionNameProvider.SectionName;

            return(sectionProvider.GetSection(sectionName) as ExtensionConfigurationSection ??
                   ExtensionConfigurationSectionHelper.CreateSection(new Dictionary <string, string>()));
        }