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 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));
        }
示例#3
0
        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));
        }
示例#4
0
        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 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));
        }