public void SymmetricCryptoProviderWithDisabledPolicyIsRemoved() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(SymmetricAlgorithmProviderData), registeredProvider); provider = new ConfigurationSectionManageabilityProviderWrapper( new CryptographySettingsManageabilityProvider(subProviders)); SymmetricAlgorithmProviderData symmetricCryptoProvider1Data = new SymmetricAlgorithmProviderData("symmetricCryptoProvider1", typeof(Object), "key", DataProtectionScope.CurrentUser); section.SymmetricCryptoProviders.Add(symmetricCryptoProvider1Data); SymmetricAlgorithmProviderData symmetricCryptoProvider2Data = new SymmetricAlgorithmProviderData("symmetricCryptoProvider2", typeof(Object), "key", DataProtectionScope.CurrentUser); section.SymmetricCryptoProviders.Add(symmetricCryptoProvider2Data); MockRegistryKey machineSymmetricCryptoProvidersKey = new MockRegistryKey(false); machineKey.AddSubKey(CryptographySettingsManageabilityProvider.SymmetricCryptoProvidersKeyName, machineSymmetricCryptoProvidersKey); MockRegistryKey machineSymmetricCryptoProvider2Key = new MockRegistryKey(false); machineSymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider2", machineSymmetricCryptoProvider2Key); machineSymmetricCryptoProvider2Key.AddBooleanValue(CryptographySettingsManageabilityProvider.PolicyValueName, false); provider.InvokeOverrideWithGroupPoliciesAndGenerateWmiObjects(section, true, machineKey, userKey, true, wmiSettings); Assert.AreEqual(1, section.SymmetricCryptoProviders.Count); Assert.IsNotNull(section.SymmetricCryptoProviders.Get("symmetricCryptoProvider1")); Assert.IsTrue(MockRegistryKey.CheckAllClosed(machineSymmetricCryptoProvidersKey, machineSymmetricCryptoProvider2Key)); }
public void WmiSettingsForExceptionHandlerAreGeneratedWithCorrectPolicyAndTypeIfWmiIsEnabled() { Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(ReplaceHandlerData), new ReplaceHandlerDataManageabilityProvider()); provider = new ConfigurationSectionManageabilityProviderWrapper( new ExceptionHandlingSettingsManageabilityProvider(subProviders)); ExceptionPolicyData policy1 = new ExceptionPolicyData("policy1"); section.ExceptionPolicies.Add(policy1); ExceptionTypeData exceptionType1 = new ExceptionTypeData("type1", typeof(Exception), PostHandlingAction.None); policy1.ExceptionTypes.Add(exceptionType1); ReplaceHandlerData handler1 = new ReplaceHandlerData("handler1", "message", typeof(ArgumentNullException).AssemblyQualifiedName); exceptionType1.ExceptionHandlers.Add(handler1); provider.InvokeOverrideWithGroupPoliciesAndGenerateWmiObjects(section, false, machineKey, userKey, true, wmiSettings); Assert.AreEqual(3, wmiSettings.Count); IDictionary <String, ExceptionHandlerSetting> handlerSettings = SelectWmiSettings <ExceptionHandlerSetting>(wmiSettings); Assert.AreEqual(1, handlerSettings.Count); Assert.IsTrue(handlerSettings.ContainsKey("handler1")); Assert.AreEqual("message", ((ReplaceHandlerSetting)handlerSettings["handler1"]).ExceptionMessage); Assert.AreEqual(typeof(ArgumentNullException).AssemblyQualifiedName, ((ReplaceHandlerSetting)handlerSettings["handler1"]).ReplaceExceptionType); Assert.AreEqual("policy1", ((ReplaceHandlerSetting)handlerSettings["handler1"]).Policy); Assert.AreEqual("type1", ((ReplaceHandlerSetting)handlerSettings["handler1"]).ExceptionType); Assert.AreEqual(0, ((ReplaceHandlerSetting)handlerSettings["handler1"]).Order); }
public void SecurityCacheProviderWithDisabledPolicyIsNotRemovedIfGroupPoliciesAreDisabled() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(SecurityCacheProviderData), registeredProvider); provider = new ConfigurationSectionManageabilityProviderWrapper( new SecuritySettingsManageabilityProvider(subProviders)); SecurityCacheProviderData securityCacheProvider1Data = new SecurityCacheProviderData("securityCacheProvider1", typeof(Object)); section.SecurityCacheProviders.Add(securityCacheProvider1Data); SecurityCacheProviderData securityCacheProvider2Data = new SecurityCacheProviderData("securityCacheProvider2", typeof(Object)); section.SecurityCacheProviders.Add(securityCacheProvider2Data); MockRegistryKey machineSecurityCacheProvidersKey = new MockRegistryKey(false); machineKey.AddSubKey(SecuritySettingsManageabilityProvider.SecurityCacheProvidersKeyName, machineSecurityCacheProvidersKey); MockRegistryKey machineSecurityCacheProvider2Key = new MockRegistryKey(false); machineSecurityCacheProvidersKey.AddSubKey("securityCacheProvider2", machineSecurityCacheProvider2Key); machineSecurityCacheProvider2Key.AddBooleanValue(SecuritySettingsManageabilityProvider.PolicyValueName, false); provider.InvokeOverrideWithGroupPoliciesAndGenerateWmiObjects(section, false, machineKey, userKey, true, wmiSettings); Assert.AreEqual(2, section.SecurityCacheProviders.Count); Assert.IsNotNull(section.SecurityCacheProviders.Get("securityCacheProvider1")); Assert.IsNotNull(section.SecurityCacheProviders.Get("securityCacheProvider2")); Assert.IsTrue(MockRegistryKey.CheckAllClosed(machineSecurityCacheProvidersKey, machineSecurityCacheProvider2Key)); }
public void RegisteredHandlerDataProviderIsCalledWithNoOverrides() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(ReplaceHandlerData), registeredProvider); provider = new ConfigurationSectionManageabilityProviderWrapper( new ExceptionHandlingSettingsManageabilityProvider(subProviders)); ExceptionPolicyData policy1 = new ExceptionPolicyData("policy1"); section.ExceptionPolicies.Add(policy1); ExceptionTypeData exceptionType1 = new ExceptionTypeData("type1", typeof(Exception), PostHandlingAction.None); policy1.ExceptionTypes.Add(exceptionType1); ExceptionHandlerData handlerData1 = new ReplaceHandlerData("handler1", "msg", typeof(ArgumentException).AssemblyQualifiedName); exceptionType1.ExceptionHandlers.Add(handlerData1); provider.InvokeOverrideWithGroupPoliciesAndGenerateWmiObjects(section, true, machineKey, userKey, false, wmiSettings); Assert.IsTrue(registeredProvider.called); Assert.AreSame(handlerData1, registeredProvider.LastConfigurationObject); Assert.AreEqual(null, registeredProvider.machineKey); Assert.AreEqual(null, registeredProvider.userKey); }
public void ManageabilityProviderGeneratesProperAdmContentWithRegisteredProviders() { DictionaryConfigurationSource configurationSource = new DictionaryConfigurationSource(); configurationSource.Add(ExceptionHandlingSettings.SectionName, section); ExceptionPolicyData policy1 = new ExceptionPolicyData("policy1"); section.ExceptionPolicies.Add(policy1); ExceptionTypeData exceptionType11 = new ExceptionTypeData("type11", typeof(Exception), PostHandlingAction.None); policy1.ExceptionTypes.Add(exceptionType11); ExceptionHandlerData handler11 = new ExceptionHandlerData("handler11", typeof(object)); exceptionType11.ExceptionHandlers.Add(handler11); MockConfigurationElementManageabilityProvider subProvider = new MockConfigurationElementManageabilityProvider(false, true); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(ExceptionHandlerData), subProvider); provider = new ConfigurationSectionManageabilityProviderWrapper(new ExceptionHandlingSettingsManageabilityProvider(subProviders)); MockAdmContentBuilder contentBuilder = new MockAdmContentBuilder(); provider.InvokeAddAdministrativeTemplateDirectives(contentBuilder, section, configurationSource, "TestApp"); MockAdmContent content = contentBuilder.GetMockContent(); IEnumerator <AdmCategory> categoriesEnumerator = content.Categories.GetEnumerator(); Assert.IsTrue(categoriesEnumerator.MoveNext()); Assert.AreEqual(Resources.SectionCategoryName, categoriesEnumerator.Current.Name); IEnumerator <AdmCategory> subCategoriesEnumerator = categoriesEnumerator.Current.Categories.GetEnumerator(); Assert.IsTrue(subCategoriesEnumerator.MoveNext()); Assert.AreEqual(policy1.Name, subCategoriesEnumerator.Current.Name); IEnumerator <AdmPolicy> policyPoliciesEnumerator = subCategoriesEnumerator.Current.Policies.GetEnumerator(); Assert.IsTrue(policyPoliciesEnumerator.MoveNext()); Assert.AreEqual(String.Format(Resources.ExceptionTypePolicyNameTemplate, exceptionType11.Name), policyPoliciesEnumerator.Current.Name); IEnumerator <AdmPart> partsEnumerator = policyPoliciesEnumerator.Current.Parts.GetEnumerator(); Assert.IsTrue(partsEnumerator.MoveNext()); Assert.AreSame(typeof(AdmDropDownListPart), partsEnumerator.Current.GetType()); Assert.IsNull(partsEnumerator.Current.KeyName); Assert.AreEqual(ExceptionHandlingSettingsManageabilityProvider.PolicyTypePostHandlingActionPropertyName, partsEnumerator.Current.ValueName); Assert.IsTrue(partsEnumerator.MoveNext()); Assert.AreSame(typeof(AdmTextPart), partsEnumerator.Current.GetType()); Assert.AreEqual(Resources.ExceptionTypeHandlersPartName, partsEnumerator.Current.PartName); Assert.IsTrue(partsEnumerator.MoveNext()); Assert.AreSame(typeof(AdmTextPart), partsEnumerator.Current.GetType()); Assert.AreEqual(MockConfigurationElementManageabilityProvider.Part, partsEnumerator.Current.PartName); Assert.IsFalse(partsEnumerator.MoveNext()); Assert.IsFalse(policyPoliciesEnumerator.MoveNext()); Assert.IsFalse(subCategoriesEnumerator.MoveNext()); Assert.IsFalse(categoriesEnumerator.MoveNext()); }
public void SetUp() { provider = new ConfigurationSectionManageabilityProviderWrapper( new ConnectionStringsManageabilityProvider(new Dictionary <Type, ConfigurationElementManageabilityProvider>(0))); machineKey = new MockRegistryKey(true); userKey = new MockRegistryKey(true); wmiSettings = new List <ConfigurationSetting>(); section = new ConnectionStringsSection(); }
public void ManageabilityProviderGeneratesProperAdmContent() { DictionaryConfigurationSource configurationSource = new DictionaryConfigurationSource(); configurationSource.Add(SecuritySettings.SectionName, section); AuthorizationProviderData authorization = new AuthorizationProviderData("authorization", typeof(object)); SecurityCacheProviderData security = new SecurityCacheProviderData("security", typeof(object)); section.AuthorizationProviders.Add(authorization); section.SecurityCacheProviders.Add(security); MockConfigurationElementManageabilityProvider subProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(AuthorizationProviderData), subProvider); subProviders.Add(typeof(SecurityCacheProviderData), subProvider); provider = new ConfigurationSectionManageabilityProviderWrapper(new SecuritySettingsManageabilityProvider(subProviders)); MockAdmContentBuilder contentBuilder = new MockAdmContentBuilder(); provider.InvokeAddAdministrativeTemplateDirectives(contentBuilder, section, configurationSource, "TestApp"); Assert.AreEqual(2, subProvider.configurationObjects.Count); Assert.AreSame(authorization, subProvider.configurationObjects[0]); Assert.AreSame(security, subProvider.configurationObjects[1]); MockAdmContent content = contentBuilder.GetMockContent(); IEnumerator <AdmCategory> categoriesEnumerator = content.Categories.GetEnumerator(); Assert.IsTrue(categoriesEnumerator.MoveNext()); Assert.AreEqual(Resources.SecuritySectionCategoryName, categoriesEnumerator.Current.Name); IEnumerator <AdmCategory> subCategoriesEnumerator = categoriesEnumerator.Current.Categories.GetEnumerator(); Assert.IsTrue(subCategoriesEnumerator.MoveNext()); Assert.AreEqual(Resources.AuthorizationProvidersCategoryName, subCategoriesEnumerator.Current.Name); Assert.IsTrue(subCategoriesEnumerator.MoveNext()); Assert.AreEqual(Resources.SecurityCacheProvidersCategoryName, subCategoriesEnumerator.Current.Name); Assert.IsFalse(subCategoriesEnumerator.MoveNext()); IEnumerator <AdmPolicy> sectionPoliciesEnumerator = categoriesEnumerator.Current.Policies.GetEnumerator(); Assert.IsTrue(sectionPoliciesEnumerator.MoveNext()); Assert.AreEqual(Resources.SecuritySettingsPolicyName, sectionPoliciesEnumerator.Current.Name); IEnumerator <AdmPart> sectionPartsEnumerator = sectionPoliciesEnumerator.Current.Parts.GetEnumerator(); Assert.IsTrue(sectionPartsEnumerator.MoveNext()); Assert.AreSame(typeof(AdmDropDownListPart), sectionPartsEnumerator.Current.GetType()); Assert.AreEqual(SecuritySettingsManageabilityProvider.DefaultAuthorizationProviderPropertyName, ((AdmDropDownListPart)sectionPartsEnumerator.Current).ValueName); Assert.IsTrue(sectionPartsEnumerator.MoveNext()); Assert.AreSame(typeof(AdmDropDownListPart), sectionPartsEnumerator.Current.GetType()); Assert.AreEqual(SecuritySettingsManageabilityProvider.DefaultSecurityCacheProviderPropertyName, ((AdmDropDownListPart)sectionPartsEnumerator.Current).ValueName); Assert.IsFalse(sectionPartsEnumerator.MoveNext()); Assert.IsFalse(sectionPoliciesEnumerator.MoveNext()); Assert.IsFalse(categoriesEnumerator.MoveNext()); }
public void ManageabilityProviderGeneratesProperAdmContent() { DictionaryConfigurationSource configurationSource = new DictionaryConfigurationSource(); configurationSource.Add(CacheManagerSettings.SectionName, section); IsolatedStorageCacheStorageData storage1, storage2; CacheManagerData manager1, manager2; StorageEncryptionProviderData encryption1; section.BackingStores.Add(storage1 = new IsolatedStorageCacheStorageData("storage1", "encryption1", "partition1")); section.CacheManagers.Add(manager1 = new CacheManagerData("manager1", 100, 200, 300, "storage1")); section.EncryptionProviders.Add(encryption1 = new StorageEncryptionProviderData("encryption1", typeof(object))); section.BackingStores.Add(storage2 = new IsolatedStorageCacheStorageData("storage2", "", "partition2")); section.CacheManagers.Add(manager2 = new CacheManagerData("manager2", 100, 200, 300, "storage2")); MockConfigurationElementManageabilityProvider subProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(IsolatedStorageCacheStorageData), subProvider); subProviders.Add(typeof(StorageEncryptionProviderData), subProvider); provider = new ConfigurationSectionManageabilityProviderWrapper(new CacheManagerSettingsManageabilityProvider(subProviders)); MockAdmContentBuilder contentBuilder = new MockAdmContentBuilder(); provider.InvokeAddAdministrativeTemplateDirectives(contentBuilder, section, configurationSource, "TestApp"); Assert.AreEqual(3, subProvider.configurationObjects.Count); Assert.AreSame(storage1, subProvider.configurationObjects[0]); Assert.AreSame(encryption1, subProvider.configurationObjects[1]); Assert.AreSame(storage2, subProvider.configurationObjects[2]); MockAdmContent content = contentBuilder.GetMockContent(); IEnumerator <AdmCategory> categoriesEnumerator = content.Categories.GetEnumerator(); Assert.IsTrue(categoriesEnumerator.MoveNext()); Assert.AreEqual(Resources.CachingSectionCategoryName, categoriesEnumerator.Current.Name); IEnumerator <AdmCategory> subCategoriesEnumerator = categoriesEnumerator.Current.Categories.GetEnumerator(); Assert.IsTrue(subCategoriesEnumerator.MoveNext()); Assert.AreEqual(Resources.CacheManagersCategoryName, subCategoriesEnumerator.Current.Name); IEnumerator <AdmPolicy> cacheManagerPoliciesEnumerator = subCategoriesEnumerator.Current.Policies.GetEnumerator(); Assert.IsTrue(cacheManagerPoliciesEnumerator.MoveNext()); Assert.AreEqual(String.Format(Resources.CacheManagerPolicyNameTemplate, manager1.Name), cacheManagerPoliciesEnumerator.Current.Name); Assert.IsTrue(cacheManagerPoliciesEnumerator.MoveNext()); Assert.AreEqual(String.Format(Resources.CacheManagerPolicyNameTemplate, manager2.Name), cacheManagerPoliciesEnumerator.Current.Name); Assert.IsFalse(cacheManagerPoliciesEnumerator.MoveNext()); Assert.IsFalse(subCategoriesEnumerator.MoveNext()); IEnumerator <AdmPolicy> sectionPoliciesEnumerator = categoriesEnumerator.Current.Policies.GetEnumerator(); Assert.IsTrue(sectionPoliciesEnumerator.MoveNext()); Assert.AreEqual(Resources.CacheManagerSettingsPolicyName, sectionPoliciesEnumerator.Current.Name); Assert.IsFalse(sectionPoliciesEnumerator.MoveNext()); Assert.IsFalse(categoriesEnumerator.MoveNext()); }
public void SetUp() { provider = new ConfigurationSectionManageabilityProviderWrapper( new CryptographySettingsManageabilityProvider(new Dictionary <Type, ConfigurationElementManageabilityProvider>(0))); machineKey = new MockRegistryKey(true); userKey = new MockRegistryKey(true); wmiSettings = new List <ConfigurationSetting>(); section = new CryptographySettings(); configurationSource = new DictionaryConfigurationSource(); configurationSource.Add("securityCryptographyConfiguration", section); }
public void SetUp() { provider = new ConfigurationSectionManageabilityProviderWrapper( new ExceptionHandlingSettingsManageabilityProvider( new Dictionary <Type, ConfigurationElementManageabilityProvider>(0))); machineKey = new MockRegistryKey(true); userKey = new MockRegistryKey(true); wmiSettings = new List <ConfigurationSetting>(); section = new ExceptionHandlingSettings(); configurationSource = new DictionaryConfigurationSource(); configurationSource.Add(ExceptionHandlingSettings.SectionName, section); }
public void RegisteredSymmetricCryptoProviderDataProviderIsCalledWithCorrectOverrides() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(SymmetricAlgorithmProviderData), registeredProvider); provider = new ConfigurationSectionManageabilityProviderWrapper( new CryptographySettingsManageabilityProvider(subProviders)); SymmetricAlgorithmProviderData symmetricCryptoProviderData = new SymmetricAlgorithmProviderData("symmetricCryptoProvider1", typeof(Object), "key", DataProtectionScope.CurrentUser); section.SymmetricCryptoProviders.Add(symmetricCryptoProviderData); MockRegistryKey machinesymmetricCryptoProvidersKey = new MockRegistryKey(false); machineKey.AddSubKey(CryptographySettingsManageabilityProvider.SymmetricCryptoProvidersKeyName, machinesymmetricCryptoProvidersKey); MockRegistryKey machinesymmetricCryptoProviderKey = new MockRegistryKey(false); machinesymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider1", machinesymmetricCryptoProviderKey); MockRegistryKey machineOthersymmetricCryptoProviderKey = new MockRegistryKey(false); machinesymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider2", machineOthersymmetricCryptoProviderKey); MockRegistryKey usersymmetricCryptoProvidersKey = new MockRegistryKey(false); userKey.AddSubKey(CryptographySettingsManageabilityProvider.SymmetricCryptoProvidersKeyName, usersymmetricCryptoProvidersKey); MockRegistryKey usersymmetricCryptoProviderKey = new MockRegistryKey(false); usersymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider1", usersymmetricCryptoProviderKey); MockRegistryKey userOthersymmetricCryptoProviderKey = new MockRegistryKey(false); usersymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider2", userOthersymmetricCryptoProviderKey); provider.InvokeOverrideWithGroupPoliciesAndGenerateWmiObjects(section, true, machineKey, userKey, true, wmiSettings); Assert.IsTrue(registeredProvider.called); Assert.AreSame(symmetricCryptoProviderData, registeredProvider.LastConfigurationObject); Assert.AreSame(machinesymmetricCryptoProviderKey, registeredProvider.machineKey); Assert.AreSame(usersymmetricCryptoProviderKey, registeredProvider.userKey); Assert.IsTrue( MockRegistryKey.CheckAllClosed(machinesymmetricCryptoProvidersKey, machinesymmetricCryptoProviderKey, machineOthersymmetricCryptoProviderKey, usersymmetricCryptoProvidersKey, usersymmetricCryptoProviderKey, userOthersymmetricCryptoProviderKey)); }
public void RegisteredSecurityCacheProviderDataProviderIsCalledWithCorrectOverrides() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(CustomSecurityCacheProviderData), registeredProvider); provider = new ConfigurationSectionManageabilityProviderWrapper( new SecuritySettingsManageabilityProvider(subProviders)); CustomSecurityCacheProviderData securitycacheProviderData = new CustomSecurityCacheProviderData("securitycacheProvider1", typeof(Object)); section.SecurityCacheProviders.Add(securitycacheProviderData); MockRegistryKey machinesecuritycacheProvidersKey = new MockRegistryKey(false); machineKey.AddSubKey(SecuritySettingsManageabilityProvider.SecurityCacheProvidersKeyName, machinesecuritycacheProvidersKey); MockRegistryKey machinesecuritycacheProviderKey = new MockRegistryKey(false); machinesecuritycacheProvidersKey.AddSubKey("securitycacheProvider1", machinesecuritycacheProviderKey); MockRegistryKey machineOthersecuritycacheProviderKey = new MockRegistryKey(false); machinesecuritycacheProvidersKey.AddSubKey("securitycacheProvider2", machineOthersecuritycacheProviderKey); MockRegistryKey usersecuritycacheProvidersKey = new MockRegistryKey(false); userKey.AddSubKey(SecuritySettingsManageabilityProvider.SecurityCacheProvidersKeyName, usersecuritycacheProvidersKey); MockRegistryKey usersecuritycacheProviderKey = new MockRegistryKey(false); usersecuritycacheProvidersKey.AddSubKey("securitycacheProvider1", usersecuritycacheProviderKey); MockRegistryKey userOthersecuritycacheProviderKey = new MockRegistryKey(false); usersecuritycacheProvidersKey.AddSubKey("securitycacheProvider2", userOthersecuritycacheProviderKey); provider.InvokeOverrideWithGroupPoliciesAndGenerateWmiObjects(section, true, machineKey, userKey, true, wmiSettings); Assert.IsTrue(registeredProvider.called); Assert.AreSame(securitycacheProviderData, registeredProvider.LastConfigurationObject); Assert.AreSame(machinesecuritycacheProviderKey, registeredProvider.machineKey); Assert.AreSame(usersecuritycacheProviderKey, registeredProvider.userKey); Assert.IsTrue( MockRegistryKey.CheckAllClosed(machinesecuritycacheProvidersKey, machinesecuritycacheProviderKey, machineOthersecuritycacheProviderKey, usersecuritycacheProvidersKey, usersecuritycacheProviderKey, userOthersecuritycacheProviderKey)); }
public void RegisteredCacheStorageDataProviderIsCalledWithCorrectOverrides() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(CacheStorageData), registeredProvider); provider = new ConfigurationSectionManageabilityProviderWrapper( new CacheManagerSettingsManageabilityProvider(subProviders)); CacheStorageData data = new CacheStorageData("store1", typeof(NullBackingStore)); section.BackingStores.Add(data); MockRegistryKey machineStoresKey = new MockRegistryKey(false); machineKey.AddSubKey(CacheManagerSettingsManageabilityProvider.BackingStoresKeyName, machineStoresKey); MockRegistryKey machineStoreKey = new MockRegistryKey(false); machineStoresKey.AddSubKey("store1", machineStoreKey); MockRegistryKey machineOtherStoreKey = new MockRegistryKey(false); machineStoresKey.AddSubKey("store2", machineOtherStoreKey); MockRegistryKey userStoresKey = new MockRegistryKey(false); userKey.AddSubKey(CacheManagerSettingsManageabilityProvider.BackingStoresKeyName, userStoresKey); MockRegistryKey userStoreKey = new MockRegistryKey(false); userStoresKey.AddSubKey("store1", userStoreKey); MockRegistryKey userOtherStoreKey = new MockRegistryKey(false); userStoresKey.AddSubKey("store2", userOtherStoreKey); provider.InvokeOverrideWithGroupPoliciesAndGenerateWmiObjects(section, true, machineKey, userKey, true, wmiSettings); Assert.IsTrue(registeredProvider.called); Assert.AreSame(data, registeredProvider.LastConfigurationObject); Assert.AreEqual(machineStoreKey, registeredProvider.machineKey); Assert.AreEqual(userStoreKey, registeredProvider.userKey); Assert.IsTrue( MockRegistryKey.CheckAllClosed(machineStoresKey, machineStoreKey, machineOtherStoreKey, userStoresKey, userStoreKey, userOtherStoreKey)); }
public void RegisteredSymmetricCryptoProviderDataProviderIsCalledWithNoOverrides() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(SymmetricAlgorithmProviderData), registeredProvider); provider = new ConfigurationSectionManageabilityProviderWrapper( new CryptographySettingsManageabilityProvider(subProviders)); SymmetricAlgorithmProviderData symmetricCryptoProviderData = new SymmetricAlgorithmProviderData("symmetricCryptoProvider1", typeof(Object), "key", DataProtectionScope.CurrentUser); section.SymmetricCryptoProviders.Add(symmetricCryptoProviderData); provider.InvokeOverrideWithGroupPoliciesAndGenerateWmiObjects(section, true, machineKey, userKey, true, wmiSettings); Assert.IsTrue(registeredProvider.called); Assert.AreSame(symmetricCryptoProviderData, registeredProvider.LastConfigurationObject); Assert.AreEqual(null, registeredProvider.machineKey); Assert.AreEqual(null, registeredProvider.userKey); }
public void RegisteredSecurityCacheProviderDataProviderIsCalledWithNoOverrides() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(CustomSecurityCacheProviderData), registeredProvider); provider = new ConfigurationSectionManageabilityProviderWrapper( new SecuritySettingsManageabilityProvider(subProviders)); CustomSecurityCacheProviderData securitycacheProviderData = new CustomSecurityCacheProviderData("securitycacheProvider1", typeof(Object)); section.SecurityCacheProviders.Add(securitycacheProviderData); provider.InvokeOverrideWithGroupPoliciesAndGenerateWmiObjects(section, true, machineKey, userKey, true, wmiSettings); Assert.IsTrue(registeredProvider.called); Assert.AreSame(securitycacheProviderData, registeredProvider.LastConfigurationObject); Assert.AreEqual(null, registeredProvider.machineKey); Assert.AreEqual(null, registeredProvider.userKey); }
public void ManageabilityProviderGeneratesProperAdmContent() { HashProviderData hash = new HashProviderData("hash", typeof(object)); section.HashProviders.Add(hash); SymmetricProviderData symmetric = new SymmetricProviderData("symmetric", typeof(object)); section.SymmetricCryptoProviders.Add(symmetric); MockConfigurationElementManageabilityProvider subProvider = new MockConfigurationElementManageabilityProvider(true, false); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(HashProviderData), subProvider); subProviders.Add(typeof(SymmetricProviderData), subProvider); provider = new ConfigurationSectionManageabilityProviderWrapper(new CryptographySettingsManageabilityProvider(subProviders)); MockAdmContentBuilder contentBuilder = new MockAdmContentBuilder(); provider.InvokeAddAdministrativeTemplateDirectives(contentBuilder, section, configurationSource, "TestApp"); Assert.AreEqual(2, subProvider.configurationObjects.Count); Assert.AreSame(hash, subProvider.configurationObjects[0]); Assert.AreSame(symmetric, subProvider.configurationObjects[1]); MockAdmContent content = contentBuilder.GetMockContent(); IEnumerator <AdmCategory> categoriesEnumerator = content.Categories.GetEnumerator(); Assert.IsTrue(categoriesEnumerator.MoveNext()); Assert.AreEqual(Resources.CryptographySectionCategoryName, categoriesEnumerator.Current.Name); IEnumerator <AdmCategory> subCategoriesEnumerator = categoriesEnumerator.Current.Categories.GetEnumerator(); Assert.IsTrue(subCategoriesEnumerator.MoveNext()); Assert.AreEqual(Resources.HashProvidersCategoryName, subCategoriesEnumerator.Current.Name); IEnumerator <AdmPolicy> policiesEnumerator = subCategoriesEnumerator.Current.Policies.GetEnumerator(); Assert.IsTrue(policiesEnumerator.MoveNext()); Assert.AreEqual(MockConfigurationElementManageabilityProvider.Policy, policiesEnumerator.Current.Name); Assert.IsFalse(policiesEnumerator.MoveNext()); Assert.IsTrue(subCategoriesEnumerator.MoveNext()); Assert.AreEqual(Resources.SymmetricCryptoProvidersCategoryName, subCategoriesEnumerator.Current.Name); policiesEnumerator = subCategoriesEnumerator.Current.Policies.GetEnumerator(); Assert.IsTrue(policiesEnumerator.MoveNext()); Assert.AreEqual(MockConfigurationElementManageabilityProvider.Policy, policiesEnumerator.Current.Name); Assert.IsFalse(policiesEnumerator.MoveNext()); Assert.IsFalse(subCategoriesEnumerator.MoveNext()); IEnumerator <AdmPolicy> sectionPoliciesEnumerator = categoriesEnumerator.Current.Policies.GetEnumerator(); Assert.IsTrue(sectionPoliciesEnumerator.MoveNext()); Assert.AreEqual(Resources.CryptographySettingsPolicyName, sectionPoliciesEnumerator.Current.Name); IEnumerator <AdmPart> sectionPartsEnumerator = sectionPoliciesEnumerator.Current.Parts.GetEnumerator(); Assert.IsTrue(sectionPartsEnumerator.MoveNext()); Assert.AreSame(typeof(AdmDropDownListPart), sectionPartsEnumerator.Current.GetType()); Assert.AreEqual(CryptographySettingsManageabilityProvider.DefaultHashProviderPropertyName, sectionPartsEnumerator.Current.ValueName); Assert.AreEqual(Resources.CryptographySettingsDefaultHashProviderPartName, sectionPartsEnumerator.Current.PartName); Assert.IsTrue(sectionPartsEnumerator.MoveNext()); Assert.AreSame(typeof(AdmDropDownListPart), sectionPartsEnumerator.Current.GetType()); Assert.AreEqual(CryptographySettingsManageabilityProvider.DefaultSymmetricCryptoProviderPropertyName, sectionPartsEnumerator.Current.ValueName); Assert.AreEqual(Resources.CryptographySettingsDefaultSymmetricCryptoProviderPartName, sectionPartsEnumerator.Current.PartName); Assert.IsFalse(sectionPartsEnumerator.MoveNext()); Assert.IsFalse(sectionPoliciesEnumerator.MoveNext()); Assert.IsFalse(categoriesEnumerator.MoveNext()); }
public void RegisteredHandlerDataProviderIsCalledWithCorrectOverrides() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(ReplaceHandlerData), registeredProvider); provider = new ConfigurationSectionManageabilityProviderWrapper( new ExceptionHandlingSettingsManageabilityProvider(subProviders)); ExceptionPolicyData policy1 = new ExceptionPolicyData("policy1"); section.ExceptionPolicies.Add(policy1); ExceptionTypeData exceptionType1 = new ExceptionTypeData("type1", typeof(Exception), PostHandlingAction.None); policy1.ExceptionTypes.Add(exceptionType1); ExceptionHandlerData handlerData1 = new ReplaceHandlerData("handler1", "msg", typeof(ArgumentException).AssemblyQualifiedName); exceptionType1.ExceptionHandlers.Add(handlerData1); MockRegistryKey machinePoliciesKey = new MockRegistryKey(false); machineKey.AddSubKey(ExceptionHandlingSettingsManageabilityProvider.PoliciesKeyName, machinePoliciesKey); MockRegistryKey machinePolicy1Key = new MockRegistryKey(false); machinePoliciesKey.AddSubKey("policy1", machinePolicy1Key); MockRegistryKey machinePolicy1TypesKey = new MockRegistryKey(false); machinePolicy1Key.AddSubKey(ExceptionHandlingSettingsManageabilityProvider.PolicyTypesPropertyName, machinePolicy1TypesKey); MockRegistryKey machinePolicy1Type1Key = new MockRegistryKey(false); machinePolicy1TypesKey.AddSubKey("type1", machinePolicy1Type1Key); MockRegistryKey machineHandlersKey = new MockRegistryKey(false); machinePolicy1Type1Key.AddSubKey(ExceptionHandlingSettingsManageabilityProvider.PolicyTypeHandlersPropertyName, machineHandlersKey); machinePolicy1Type1Key.AddEnumValue(ExceptionHandlingSettingsManageabilityProvider.PolicyTypePostHandlingActionPropertyName, PostHandlingAction.None); MockRegistryKey machineHandlerKey = new MockRegistryKey(false); machineHandlersKey.AddSubKey("handler1", machineHandlerKey); MockRegistryKey userPoliciesKey = new MockRegistryKey(false); userKey.AddSubKey(ExceptionHandlingSettingsManageabilityProvider.PoliciesKeyName, userPoliciesKey); MockRegistryKey userPolicy1Key = new MockRegistryKey(false); userPoliciesKey.AddSubKey("policy1", userPolicy1Key); MockRegistryKey userPolicy1TypesKey = new MockRegistryKey(false); userPolicy1Key.AddSubKey(ExceptionHandlingSettingsManageabilityProvider.PolicyTypesPropertyName, userPolicy1TypesKey); MockRegistryKey userPolicy1Type1Key = new MockRegistryKey(false); userPolicy1TypesKey.AddSubKey("type1", userPolicy1Type1Key); MockRegistryKey userHandlersKey = new MockRegistryKey(false); userPolicy1Type1Key.AddSubKey(ExceptionHandlingSettingsManageabilityProvider.PolicyTypeHandlersPropertyName, userHandlersKey); userPolicy1Type1Key.AddEnumValue(ExceptionHandlingSettingsManageabilityProvider.PolicyTypePostHandlingActionPropertyName, PostHandlingAction.None); MockRegistryKey userHandlerKey = new MockRegistryKey(false); userHandlersKey.AddSubKey("handler1", userHandlerKey); provider.InvokeOverrideWithGroupPoliciesAndGenerateWmiObjects(section, true, machineKey, userKey, false, wmiSettings); Assert.IsTrue(registeredProvider.called); Assert.AreSame(handlerData1, registeredProvider.LastConfigurationObject); Assert.AreSame(machineHandlerKey, registeredProvider.machineKey); Assert.AreSame(userHandlerKey, registeredProvider.userKey); Assert.IsTrue(MockRegistryKey.CheckAllClosed(machinePoliciesKey, machinePolicy1Key, machinePolicy1TypesKey, machinePolicy1Type1Key, machineHandlersKey, machineHandlerKey, userPolicy1Key, userPolicy1TypesKey, userPolicy1Type1Key, userHandlersKey, userHandlerKey)); }