public void HelperWillRevokePublishedSettingsOnReprocess() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, true, wmiPublisher, ApplicationName); helper.UpdateConfigurationManageability(configurationAccessor); Assert.AreEqual(1, wmiPublisher.GetPublishedInstances().Count); ConfigurationSetting publishedSetting = new List <ConfigurationSetting>(wmiPublisher.GetPublishedInstances())[0]; helper.UpdateConfigurationManageability(configurationAccessor); Assert.AreEqual(1, wmiPublisher.GetPublishedInstances().Count); ConfigurationSetting rePublishedSetting = new List <ConfigurationSetting>(wmiPublisher.GetPublishedInstances())[0]; Assert.AreNotSame(publishedSetting, rePublishedSetting); }
public void HelperWithManageabilityProviderForMissingSectionDoesNothing() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockRegistryKey userKey = new MockRegistryKey(false); currentUser.AddSubKey(ManageabilityHelper.BuildSectionKeyName(ApplicationName, SectionName), userKey); MockRegistryKey machineKey = new MockRegistryKey(false); localMachine.AddSubKey(ManageabilityHelper.BuildSectionKeyName(ApplicationName, SectionName), machineKey); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(AltSectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, ApplicationName); helper.UpdateConfigurationManageability(configurationAccessor); Assert.IsFalse(manageabilityProvider.called); Assert.AreEqual(0, currentUser.GetRequests().Count); Assert.AreEqual(0, localMachine.GetRequests().Count); Assert.IsTrue(MockRegistryKey.CheckAllClosed(userKey, machineKey)); }
public void HelperWithManageabilityProviderForExistingSectionDoesInvokeWithApproriateParameters() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockRegistryKey userKey = new MockRegistryKey(false); currentUser.AddSubKey(ManageabilityHelper.BuildSectionKeyName(ApplicationName, SectionName), userKey); MockRegistryKey machineKey = new MockRegistryKey(false); localMachine.AddSubKey(ManageabilityHelper.BuildSectionKeyName(ApplicationName, SectionName), machineKey); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, true, wmiPublisher, ApplicationName); helper.UpdateConfigurationManageability(configurationAccessor); Assert.IsTrue(manageabilityProvider.called); Assert.AreEqual(1, wmiPublisher.GetPublishedInstances().Count); Assert.AreEqual(1, currentUser.GetRequests().Count); Assert.AreSame(userKey, manageabilityProvider.userKey); Assert.AreEqual(1, localMachine.GetRequests().Count); Assert.AreSame(machineKey, manageabilityProvider.machineKey); Assert.IsTrue(MockRegistryKey.CheckAllClosed(userKey, machineKey)); }
public void WillForwardChangeEventInConfigurationSetting() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, true, wmiPublisher, ApplicationName); helper.ConfigurationSettingChanged += OnConfigurationSettingChanged; helper.UpdateConfigurationManageability(configurationAccessor); IEnumerator <ConfigurationSetting> publishedSettings = wmiPublisher.GetPublishedInstances().GetEnumerator(); Assert.IsTrue(publishedSettings.MoveNext()); Assert.IsNull(notifiedChangeSource); ((ConfigurationSetting)publishedSettings.Current).Commit(); // commit changes Assert.AreEqual(SectionName, notifiedChangeSource); }
public void HelperWillNotSendRegistryKeysIfNotAvailable() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockRegistryKey machineKey = new MockRegistryKey(false); localMachine.AddSubKey(ManageabilityHelper.BuildSectionKeyName(ApplicationName, SectionName), machineKey); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, ApplicationName); helper.UpdateConfigurationManageability(configurationAccessor); Assert.IsTrue(manageabilityProvider.called); Assert.IsTrue(manageabilityProvider.readGroupPolicies); Assert.AreEqual(1, currentUser.GetRequests().Count); Assert.IsNull(manageabilityProvider.userKey); Assert.AreEqual(1, localMachine.GetRequests().Count); Assert.AreSame(machineKey, manageabilityProvider.machineKey); Assert.IsTrue(MockRegistryKey.CheckAllClosed(machineKey)); }
public void UpdateOnSectionReappliesPoliciesAndRepublishesWmiObjects() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockRegistryKey userKey = new MockRegistryKey(false); currentUser.AddSubKey(ManageabilityHelper.BuildSectionKeyName(ApplicationName, SectionName), userKey); userKey.AddBooleanValue(RegistryKeyBase.PolicyValueName, true); userKey.AddStringValue(MockConfigurationSectionManageabilityProvider.ValuePropertyName, "Overriden"); MockRegistryKey machineKey = new MockRegistryKey(false); localMachine.AddSubKey(ManageabilityHelper.BuildSectionKeyName(ApplicationName, SectionName), machineKey); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, true, wmiPublisher, ApplicationName); helper.ConfigurationSettingChanged += OnConfigurationSettingChangedTriggerUpdate; helper.UpdateConfigurationManageability(configurationAccessor); // check the original setting was published alright. IEnumerator <ConfigurationSetting> publishedInstances = wmiPublisher.GetPublishedInstances().GetEnumerator(); Assert.IsTrue(publishedInstances.MoveNext()); TestConfigurationSettings originalSetting = publishedInstances.Current as TestConfigurationSettings; Assert.IsNotNull(originalSetting); Assert.AreEqual("Overriden", originalSetting.Value); Assert.IsFalse(publishedInstances.MoveNext()); // change and notify originalSetting.Value = "Foo"; originalSetting.Commit(); // check the updated setting is indeed updated and a new instance // the gp override should still take precedence publishedInstances = wmiPublisher.GetPublishedInstances().GetEnumerator(); Assert.IsTrue(publishedInstances.MoveNext()); TestConfigurationSettings updatedSetting = publishedInstances.Current as TestConfigurationSettings; Assert.IsNotNull(updatedSetting); Assert.AreNotSame(originalSetting, updatedSetting); Assert.AreEqual("Overriden", updatedSetting.Value); Assert.IsFalse(publishedInstances.MoveNext()); }
public void HelperIgnoresUpdateSectionsListWithMappedProviderForMissingSection() { MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, ApplicationName); helper.UpdateConfigurationManageability(configurationAccessor); Assert.IsFalse(manageabilityProvider.called); }
public void HelperRevokesPublishedObjectsForRemovedSection() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, true, wmiPublisher, ApplicationName); helper.UpdateConfigurationManageability(configurationAccessor); Assert.AreEqual(1, wmiPublisher.GetPublishedInstances().Count); configurationSource.Remove(SectionName); helper.UpdateConfigurationManageability(configurationAccessor); Assert.AreEqual(0, wmiPublisher.GetPublishedInstances().Count); }
public void HelperIgnoresUpdateSectionsListWithoutMappedProvider() { MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, ApplicationName); helper.UpdateConfigurationManageability(configurationAccessor); Assert.AreEqual(0, currentUser.GetRequests().Count); Assert.AreEqual(0, localMachine.GetRequests().Count); }
public void WillRemoveHandlerForChangeEventInConfigurationSettingWhenRevoked() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, true, wmiPublisher, ApplicationName); helper.ConfigurationSettingChanged += OnConfigurationSettingChanged; helper.UpdateConfigurationManageability(configurationAccessor); IEnumerator <ConfigurationSetting> publishedSettings = wmiPublisher.GetPublishedInstances().GetEnumerator(); Assert.IsTrue(publishedSettings.MoveNext()); // same as before, check that the setting's commit will trigger the event Assert.IsNull(notifiedChangeSource); ((ConfigurationSetting)publishedSettings.Current).Commit(); // commit changes Assert.AreEqual(SectionName, notifiedChangeSource); // remove the section and update the manageability configurationSource.Remove(SectionName); helper.UpdateConfigurationManageability(configurationAccessor); // check that *the original* setting's commit will not trigger changes now notifiedChangeSource = null; ((ConfigurationSetting)publishedSettings.Current).Commit(); // commit changes Assert.IsNull(notifiedChangeSource); }
public void HelperPerformsUpdateForSectionNotPreviouslyProcessed() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, ApplicationName); helper.UpdateConfigurationManageability(configurationAccessor); Assert.IsTrue(manageabilityProvider.called); }
public void UpdateOnSectionRepublishesWmiObjects() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockRegistryKey userKey = new MockRegistryKey(false); MockRegistryKey machineKey = new MockRegistryKey(false); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, true, wmiPublisher, ApplicationName); helper.ConfigurationSettingChanged += OnConfigurationSettingChangedTriggerUpdate; helper.UpdateConfigurationManageability(configurationAccessor); // check the original setting was published alright. IEnumerator <ConfigurationSetting> publishedInstances = wmiPublisher.GetPublishedInstances().GetEnumerator(); Assert.IsTrue(publishedInstances.MoveNext()); TestConfigurationSettings originalSetting = publishedInstances.Current as TestConfigurationSettings; Assert.IsNotNull(originalSetting); Assert.AreEqual(originalValue, originalSetting.Value); Assert.IsFalse(publishedInstances.MoveNext()); // change and notify originalSetting.Value = "Foo"; originalSetting.Commit(); // check the updated setting is indeed updated and a new instance publishedInstances = wmiPublisher.GetPublishedInstances().GetEnumerator(); Assert.IsTrue(publishedInstances.MoveNext()); TestConfigurationSettings updatedSetting = publishedInstances.Current as TestConfigurationSettings; Assert.IsNotNull(updatedSetting); Assert.AreNotSame(originalSetting, updatedSetting); Assert.AreEqual(originalSetting.Value, updatedSetting.Value); Assert.IsFalse(publishedInstances.MoveNext()); }
public void HelperWithEmtpyManageabilityProvidersDoesNothing() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockRegistryKey userKey = new MockRegistryKey(false); currentUser.AddSubKey(ManageabilityHelper.BuildSectionKeyName(ApplicationName, SectionName), userKey); MockRegistryKey machineKey = new MockRegistryKey(false); localMachine.AddSubKey(ManageabilityHelper.BuildSectionKeyName(ApplicationName, SectionName), machineKey); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, ApplicationName); helper.UpdateConfigurationManageability(configurationAccessor); Assert.AreEqual(0, currentUser.GetRequests().Count); Assert.AreEqual(0, localMachine.GetRequests().Count); Assert.IsTrue(MockRegistryKey.CheckAllClosed(userKey, machineKey)); }
public void HelperWillSendAppropriateParameterIfWmiIsDisabled() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, false, wmiPublisher, ApplicationName); helper.UpdateConfigurationManageability(configurationAccessor); Assert.IsTrue(manageabilityProvider.called); Assert.IsTrue(manageabilityProvider.readGroupPolicies); Assert.IsFalse(manageabilityProvider.generateWmiObjects); Assert.AreEqual(0, wmiPublisher.GetPublishedInstances().Count); }
public void WmiSettingsArePublishedWithApplicationAndSectionName() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, false, registryAccessor, true, wmiPublisher, ApplicationName); helper.UpdateConfigurationManageability(configurationAccessor); Assert.AreEqual(1, wmiPublisher.GetPublishedInstances().Count); ConfigurationSetting publishedSetting = new List <ConfigurationSetting>(wmiPublisher.GetPublishedInstances())[0]; Assert.AreEqual(ApplicationName, publishedSetting.ApplicationName); Assert.AreEqual(SectionName, publishedSetting.SectionName); }
public void WillNotRemoveRegisteredSectionWithDisabledPolicyIfPolicyOverridesAreDisabled() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockRegistryKey machineKey = new MockRegistryKey(false); localMachine.AddSubKey(ManageabilityHelper.BuildSectionKeyName(ApplicationName, SectionName), machineKey); machineKey.AddBooleanValue(AdmContentBuilder.AvailableValueName, false); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, false, registryAccessor, ApplicationName); Assert.IsTrue(configurationSource.Contains(SectionName)); helper.UpdateConfigurationManageability(configurationAccessor); Assert.IsTrue(configurationSource.Contains(SectionName)); }
public void HelperWithManageabilityProviderForExistingSectionDoesInvokeWithApproriateParameters() { TestsConfigurationSection section = new TestsConfigurationSection(originalValue); configurationSource.Add(SectionName, section); MockRegistryKey userKey = new MockRegistryKey(false); currentUser.AddSubKey(ManageabilityHelper.BuildSectionKeyName(ApplicationName, SectionName), userKey); MockRegistryKey machineKey = new MockRegistryKey(false); localMachine.AddSubKey(ManageabilityHelper.BuildSectionKeyName(ApplicationName, SectionName), machineKey); MockConfigurationSectionManageabilityProvider manageabilityProvider = new MockConfigurationSectionManageabilityProvider(subProviders); manageabilityProviders.Add(SectionName, manageabilityProvider); ManageabilityHelper helper = new ManageabilityHelper(manageabilityProviders, true, registryAccessor, ApplicationName); helper.UpdateConfigurationManageability(configurationAccessor); Assert.IsTrue(manageabilityProvider.called); Assert.AreEqual(1, currentUser.GetRequests().Count); Assert.AreSame(userKey, manageabilityProvider.userKey); Assert.AreEqual(1, localMachine.GetRequests().Count); Assert.AreSame(machineKey, manageabilityProvider.machineKey); Assert.IsTrue(MockRegistryKey.CheckAllClosed(userKey, machineKey)); }