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); }
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); }
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); }
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); } }
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); }
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); }
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); } } }