Exemple #1
0
        public void ConfigurationCanBeDeserialized()
        {
            ConfigurationManager.RefreshSection(ConfigurationSourceSection.SectionName);

            ConfigurationSourceSection section = (ConfigurationSourceSection)ConfigurationManager.GetSection(ConfigurationSourceSection.SectionName);

            Assert.IsNotNull(section);
            Assert.AreEqual(1, section.Sources.Count);
            ManageableConfigurationSourceElement element = section.Sources.Get(0) as ManageableConfigurationSourceElement;

            Assert.IsNotNull(element);
            Assert.AreEqual(2, element.ConfigurationManageabilityProviders.Count);
            ConfigurationSectionManageabilityProviderData data1 = element.ConfigurationManageabilityProviders.Get("section1");

            Assert.IsNotNull(data1);
            Assert.AreEqual(typeof(MockConfigurationSectionManageabilityProvider), data1.Type);
            Assert.AreEqual(3, data1.ManageabilityProviders.Count);
            ConfigurationElementManageabilityProviderData elementData11 = data1.ManageabilityProviders.Get("subProvider1");

            Assert.IsNotNull(elementData11);
            Assert.AreEqual(typeof(Object), elementData11.TargetType);
            ConfigurationSectionManageabilityProviderData data2 = element.ConfigurationManageabilityProviders.Get("section2");

            Assert.IsNotNull(data2);
            Assert.AreEqual(typeof(MockConfigurationSectionManageabilityProvider), data1.Type);
            Assert.AreEqual(0, data2.ManageabilityProviders.Count);
        }
Exemple #2
0
        public static IEnumerable <ConfigurationSectionManageabilityProviderData> BuildSectionManageabilityProvidersData(
            IEnumerable <ConfigurationSectionManageabilityProviderAttribute> sectionManageabilityProviderAttributes,
            IEnumerable <ConfigurationElementManageabilityProviderAttribute> elementManageabilityProviderAttributes)
        {
            List <ConfigurationSectionManageabilityProviderData> result = new List <ConfigurationSectionManageabilityProviderData>();

            foreach (ConfigurationSectionManageabilityProviderAttribute sectionAttribute in sectionManageabilityProviderAttributes)
            {
                ConfigurationSectionManageabilityProviderData providerData
                    = new ConfigurationSectionManageabilityProviderData(sectionAttribute.SectionName, sectionAttribute.ManageabilityProviderType);

                foreach (ConfigurationElementManageabilityProviderAttribute elementAttribute in elementManageabilityProviderAttributes)
                {
                    if (elementAttribute.SectionManageabilityProviderType == sectionAttribute.ManageabilityProviderType)
                    {
                        providerData.ManageabilityProviders.Add(
                            new ConfigurationElementManageabilityProviderData(
                                elementAttribute.TargetType.Name,
                                elementAttribute.ManageabilityProviderType,
                                elementAttribute.TargetType));
                    }
                }

                result.Add(providerData);
            }

            return(result);
        }
Exemple #3
0
        public void CanCreateDataCollectionWithElementProviders()
        {
            ConfigurationSectionManageabilityProviderAttribute[] sectionProviders
                = new ConfigurationSectionManageabilityProviderAttribute[1];
            sectionProviders[0] = new ConfigurationSectionManageabilityProviderAttribute("section1", typeof(MockConfigurationSectionManageabilityProvider));
            ConfigurationElementManageabilityProviderAttribute[] elementProviders
                = new ConfigurationElementManageabilityProviderAttribute[1];
            elementProviders[0] = new ConfigurationElementManageabilityProviderAttribute(typeof(MockConfigurationElementManageabilityProvider), typeof(String), typeof(MockConfigurationSectionManageabilityProvider));

            List <ConfigurationSectionManageabilityProviderData> providersDataCollection
                = ConvertToList(ManageableConfigurationSourceElementBuilder.BuildSectionManageabilityProvidersData(sectionProviders, elementProviders));

            Assert.IsNotNull(providersDataCollection);
            Assert.AreEqual(1, providersDataCollection.Count);
            ConfigurationSectionManageabilityProviderData data1 = GetProviderData(providersDataCollection, "section1");

            Assert.IsNotNull(data1);
            Assert.AreSame(typeof(MockConfigurationSectionManageabilityProvider), data1.Type);
            Assert.AreEqual(1, data1.ManageabilityProviders.Count);
            ConfigurationElementManageabilityProviderData elementData11
                = GetProviderData <ConfigurationElementManageabilityProviderData>(data1.ManageabilityProviders, "String");

            Assert.IsNotNull(elementData11);
            Assert.AreSame(typeof(MockConfigurationElementManageabilityProvider), elementData11.Type);
            Assert.AreSame(typeof(String), elementData11.TargetType);
        }
Exemple #4
0
        public void CanCreateDataCollectionForMultipleSectionMapping()
        {
            ConfigurationSectionManageabilityProviderAttribute[] sectionProviders
                = new ConfigurationSectionManageabilityProviderAttribute[2];
            sectionProviders[0] = new ConfigurationSectionManageabilityProviderAttribute("section1", typeof(MockConfigurationSectionManageabilityProvider));
            sectionProviders[1] = new ConfigurationSectionManageabilityProviderAttribute("section2", typeof(MockConfigurationSectionManageabilityProviderAlt));
            ConfigurationElementManageabilityProviderAttribute[] elementProviders
                = new ConfigurationElementManageabilityProviderAttribute[0];

            List <ConfigurationSectionManageabilityProviderData> providersDataCollection
                = ConvertToList(ManageableConfigurationSourceElementBuilder.BuildSectionManageabilityProvidersData(sectionProviders, elementProviders));

            Assert.IsNotNull(providersDataCollection);
            Assert.AreEqual(2, providersDataCollection.Count);
            ConfigurationSectionManageabilityProviderData data1 = GetProviderData(providersDataCollection, "section1");

            Assert.IsNotNull(data1);
            Assert.AreSame(typeof(MockConfigurationSectionManageabilityProvider), data1.Type);
            Assert.AreEqual(0, data1.ManageabilityProviders.Count);
            ConfigurationSectionManageabilityProviderData data2 = GetProviderData(providersDataCollection, "section1");

            Assert.IsNotNull(data2);
            Assert.AreSame(typeof(MockConfigurationSectionManageabilityProvider), data2.Type);
            Assert.AreEqual(0, data2.ManageabilityProviders.Count);
        }
        private static IEnumerable <ConfigurationSectionManageabilityProviderData> GetConfigurationManageabilityProviders(
            ConfigurationManageabilityProviderAttributeRetriever retriever)
        {
            foreach (var sectionAttribute in retriever.SectionManageabilityProviderAttributes)
            {
                var sectionProviderElement =
                    new ConfigurationSectionManageabilityProviderData(
                        sectionAttribute.SectionName,
                        sectionAttribute.ManageabilityProviderType);

                foreach (var elementAttribute in retriever.ElementManageabilityProviderAttributes)
                {
                    if (elementAttribute.SectionManageabilityProviderType == sectionAttribute.ManageabilityProviderType)
                    {
                        sectionProviderElement.ManageabilityProviders.Add(
                            new ConfigurationElementManageabilityProviderData(
                                elementAttribute.TargetType.Name,
                                elementAttribute.ManageabilityProviderType,
                                elementAttribute.TargetType));
                    }
                }

                yield return(sectionProviderElement);
            }
        }
Exemple #6
0
        public void CanCreateSectionProviderWithSubProviders()
        {
            ConfigurationSectionManageabilityProviderData section1Data
                = new ConfigurationSectionManageabilityProviderData("section1", typeof(TestConfigurationSectionManageabilityProviderWithValidWmiImplementations));

            section1Data.ManageabilityProviders.Add(new ConfigurationElementManageabilityProviderData("2", typeof(TestConfigurationElementManageabilityProviderWithValidWmiImplementations), typeof(Boolean)));
            section1Data.ManageabilityProviders.Add(new ConfigurationElementManageabilityProviderData("3", typeof(TestConfigurationElementManageabilityProviderWithValidWmiImplementations2), typeof(Int32)));

            TestConfigurationSectionManageabilityProviderWithValidWmiImplementations provider
                = new ManageabilityProviderBuilder().CreateConfigurationSectionManageabilityProvider(section1Data)
                  as TestConfigurationSectionManageabilityProviderWithValidWmiImplementations;

            Assert.IsNotNull(provider);
            Assert.AreEqual(2, provider.Providers.Count);

            TestConfigurationElementManageabilityProviderWithValidWmiImplementations subProvider1
                = provider.Providers[typeof(bool)] as TestConfigurationElementManageabilityProviderWithValidWmiImplementations;

            Assert.IsNotNull(subProvider1);

            TestConfigurationElementManageabilityProviderWithValidWmiImplementations2 subProvider2
                = provider.Providers[typeof(int)] as TestConfigurationElementManageabilityProviderWithValidWmiImplementations2;

            Assert.IsNotNull(subProvider2);
        }
Exemple #7
0
        public void CanCreateSectionProviderWithNoSubProviders()
        {
            ConfigurationSectionManageabilityProviderData section1Data
                = new ConfigurationSectionManageabilityProviderData("section1", typeof(TestConfigurationSectionManageabilityProviderWithValidWmiImplementations));
            TestConfigurationSectionManageabilityProviderWithValidWmiImplementations provider
                = (TestConfigurationSectionManageabilityProviderWithValidWmiImplementations) new ManageabilityProviderBuilder().CreateConfigurationSectionManageabilityProvider(section1Data);

            Assert.IsNotNull(provider);
            Assert.AreEqual(0, provider.Providers.Count);
        }
Exemple #8
0
        public void ConfigurationElementWithProvidersCanBeSerialized()
        {
            string otherConfigurationFile     = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Other.config");
            ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();

            configMap.ExeConfigFilename = otherConfigurationFile;

            File.Copy(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile, otherConfigurationFile);

            try
            {
                SysConfig.Configuration rwConfiguration = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);

                ConfigurationSourceSection rwConfigurationSourceSection
                    = rwConfiguration.GetSection(ConfigurationSourceSection.SectionName) as ConfigurationSourceSection;
                rwConfigurationSourceSection.Sources.Clear();

                ManageableConfigurationSourceElement rwConfigurationSourceElement
                    = new ManageableConfigurationSourceElement("manageable", otherConfigurationFile, "TestApplication");
                rwConfigurationSourceElement.ConfigurationManageabilityProviders.Add(new ConfigurationSectionManageabilityProviderData("section1", typeof(MockConfigurationSectionManageabilityProvider)));
                rwConfigurationSourceSection.Sources.Add(rwConfigurationSourceElement);

                rwConfiguration.Save();

                SysConfig.Configuration    roConfiguration = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
                ConfigurationSourceSection roConfigurationSourceSection
                    = roConfiguration.GetSection(ConfigurationSourceSection.SectionName) as ConfigurationSourceSection;
                Assert.IsNotNull(roConfigurationSourceSection);
                Assert.AreEqual(1, roConfigurationSourceSection.Sources.Count);
                ManageableConfigurationSourceElement roConfigurationSourceElement
                    = roConfigurationSourceSection.Sources.Get("manageable") as ManageableConfigurationSourceElement;
                Assert.IsNotNull(roConfigurationSourceElement);
                Assert.AreEqual(1, roConfigurationSourceElement.ConfigurationManageabilityProviders.Count);
                ConfigurationSectionManageabilityProviderData roProviderData
                    = roConfigurationSourceElement.ConfigurationManageabilityProviders.Get(0);
                Assert.AreEqual("section1", roProviderData.Name);
            }
            finally
            {
                if (File.Exists(otherConfigurationFile))
                {
                    File.Delete(otherConfigurationFile);
                }
            }
        }