示例#1
0
        private void InitializeDialog(CategoryFilterEditorUI dialog, ClientSettingsNode node)
        {
            dialog.FilterMode = node.CategoryFilterSettings.CategoryFilterMode;

            SetCategoryFilterSettings(dialog, node);

            SetAvailableCategoryNames(dialog, node);
        }
        public void ClientSettingsDefaultChildNodesTest()
        {
            ClientSettingsNode node = new ClientSettingsNode();

            GeneratedApplicationNode.Nodes.AddWithDefaultChildren(node);
            Assert.AreEqual(1, node.Nodes.Count);
            Assert.AreEqual(typeof(DistributionStrategyCollectionNode), node.Nodes[0].GetType());
        }
示例#3
0
        private void SetCategoryFilterSettings(CategoryFilterEditorUI dialog, ClientSettingsNode node)
        {
            ArrayList selectedCategoryNames = new ArrayList();

            foreach (CategoryFilterData categoryFilter in node.CategoryFilterSettings.CategoryFilters)
            {
                selectedCategoryNames.Add(categoryFilter.Name);
            }

            dialog.SetSelectedCategoryNames(selectedCategoryNames);
        }
        public void DesigntimeTest()
        {
            LoggingSettings settings = ConfigurationManager.GetConfiguration(LoggingSettings.SectionName) as LoggingSettings;

            Assert.IsNotNull(settings);

            ClientSettingsNode settingsNode = new ClientSettingsNode(settings);

            GeneratedApplicationNode.Nodes.Add(settingsNode);
            Assert.AreEqual(settings.CategoryFilterMode, settingsNode.CategoryFilterSettings.CategoryFilterMode);
            Assert.AreEqual(settings.LoggingEnabled, settingsNode.LoggingEnabled);
            Assert.AreEqual(settings.MinimumPriority, settingsNode.MinimumPriority);
            Assert.AreEqual(settings.Name, settingsNode.Name);
            Assert.AreEqual(settings.TracingEnabled, settingsNode.TracingEnabled);
        }
示例#5
0
        public void RemovingDistributionStrategySavesAndReopensCorrectly()
        {
            GeneratedHierarchy.Open();
            LoggingSettingsNode node = new LoggingSettingsNode();

            GeneratedApplicationNode.Nodes.AddWithDefaultChildren(node);
            ClientSettingsNode clientSettingsNode            = GeneratedHierarchy.FindNodeByType(node, typeof(ClientSettingsNode)) as ClientSettingsNode;
            DistributionStrategyCollectionNode distributions = GeneratedHierarchy.FindNodeByType(clientSettingsNode, typeof(DistributionStrategyCollectionNode)) as DistributionStrategyCollectionNode;

            distributions.Nodes.AddWithDefaultChildren(new MsmqDistributionStrategyNode());
            GeneratedHierarchy.Save();

            ApplicationConfigurationNode appNode = new ApplicationConfigurationNode(ApplicationData.FromCurrentAppDomain());
            IUIHierarchy hierarchy = CreateHierarchyAndAddToHierarchyService(appNode, CreateDefaultConfiguration());

            HierarchyService.SelectedHierarchy = hierarchy;
            hierarchy.Open();
            LoggingSettingsNode settingsNode = hierarchy.FindNodeByType(typeof(LoggingSettingsNode)) as LoggingSettingsNode;

            Assert.IsNotNull(settingsNode);
            distributions = hierarchy.FindNodeByType(appNode, typeof(DistributionStrategyCollectionNode)) as DistributionStrategyCollectionNode;
            Assert.IsNotNull(distributions);
            MsmqDistributionStrategyNode msmqDistributionStrategyNode = hierarchy.FindNodeByType(distributions, typeof(MsmqDistributionStrategyNode)) as MsmqDistributionStrategyNode;

            Assert.IsNotNull(msmqDistributionStrategyNode);
            // expect 3, inproc, MSMQ, and custom
            Assert.AreEqual(3, distributions.Nodes.Count);
            InProcDistributionStrategyNode inProcNode = hierarchy.FindNodeByType(distributions, typeof(InProcDistributionStrategyNode)) as InProcDistributionStrategyNode;

            Assert.IsNotNull(inProcNode);
            inProcNode.Remove();
            hierarchy.Save();


            appNode   = new ApplicationConfigurationNode(ApplicationData.FromCurrentAppDomain());
            hierarchy = CreateHierarchyAndAddToHierarchyService(appNode, CreateDefaultConfiguration());
            HierarchyService.SelectedHierarchy = hierarchy;
            hierarchy.Open();
            settingsNode = hierarchy.FindNodeByType(typeof(LoggingSettingsNode)) as LoggingSettingsNode;
            Assert.IsNotNull(settingsNode);
            distributions = hierarchy.FindNodeByType(appNode, typeof(DistributionStrategyCollectionNode)) as DistributionStrategyCollectionNode;
            Assert.IsNotNull(distributions);
            // expect 2, inproc & custom
            Assert.AreEqual(2, distributions.Nodes.Count);
        }
示例#6
0
        /// <summary>
        /// Initializes and draws the category filter editor dialog and returns the results to the calling object.
        /// </summary>
        /// <param name="context">See <see cref="UITypeEditor.EditValue"/>.</param>
        /// <param name="provider">See <see cref="UITypeEditor.EditValue"/>.</param>
        /// <param name="value">See <see cref="UITypeEditor.EditValue"/>.</param>
        /// <returns>See <see cref="UITypeEditor.EditValue"/>.</returns>
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            Debug.Assert(provider != null, "No service provider; we cannot edit the value");
            if (provider != null)
            {
                IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

                Debug.Assert(edSvc != null, "No editor service; we cannot edit the value");
                if (edSvc != null)
                {
                    IWindowsFormsEditorService service = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

                    CategoryFilterEditorUI dialog          = new CategoryFilterEditorUI();
                    ClientSettingsNode     currentSettings = (ClientSettingsNode)context.Instance;
                    InitializeDialog(dialog, currentSettings);

                    DialogResult dialogResult = service.ShowDialog(dialog);

                    if (dialogResult != DialogResult.Cancel)
                    {
                        CategoryFilterMode categoryFilterMode = dialog.FilterMode;

                        CategoryFilterDataCollection categoryFilters = new CategoryFilterDataCollection();
                        foreach (string category in dialog.GetSelectedCategoryNames())
                        {
                            CategoryFilterData categoryFilter = new CategoryFilterData();
                            categoryFilter.Name = category;
                            categoryFilters.Add(categoryFilter);
                        }

                        return(new CategoryFilterSettings(categoryFilterMode, categoryFilters));
                    }
                    else
                    {
                        return(currentSettings.CategoryFilterSettings);
                    }
                }
            }
            return(value);
        }
        public void ClientSettingsNodeTest()
        {
            DistributionStrategyNode distributionStrategy = new InProcDistributionStrategyNode();
            bool loggingEnabled  = true;
            int  minimumPriority = 1;
            bool tracingEnabled  = true;

            ClientSettingsNode node = new ClientSettingsNode();

            GeneratedApplicationNode.Nodes.Add(node);
            node.CategoryFilterSettings = new CategoryFilterSettings(CategoryFilterMode.DenyAllExceptAllowed, new CategoryFilterDataCollection());
            node.DistributionStrategy   = distributionStrategy;
            node.LoggingEnabled         = loggingEnabled;
            node.MinimumPriority        = minimumPriority;
            node.TracingEnabled         = tracingEnabled;

            Assert.AreEqual(CategoryFilterMode.DenyAllExceptAllowed, node.CategoryFilterSettings.CategoryFilterMode);
            Assert.AreEqual(distributionStrategy, node.DistributionStrategy);
            Assert.AreEqual(loggingEnabled, node.LoggingEnabled);
            Assert.AreEqual(minimumPriority, node.MinimumPriority);
            Assert.AreEqual(tracingEnabled, tracingEnabled);
        }
        public void ClientSettingsDataTest()
        {
            DistributionStrategyDataCollection distStrategies = new DistributionStrategyDataCollection();
            DistributionStrategyData           distData       = new InProcDistributionStrategyData();

            distData.Name = "Test";
            distStrategies.Add(distData);

            LoggingSettings settings = new LoggingSettings();

            settings.CategoryFilterMode = CategoryFilterMode.DenyAllExceptAllowed;
            settings.CategoryFilters    = new CategoryFilterDataCollection();
            foreach (DistributionStrategyData distributionStrategyData in distStrategies)
            {
                settings.DistributionStrategies.Add(distributionStrategyData);
            }
            settings.LoggingEnabled  = true;
            settings.MinimumPriority = 0;
            settings.TracingEnabled  = true;

            ClientSettingsNode node = new ClientSettingsNode(settings);

            GeneratedApplicationNode.Nodes.Add(node);
            Assert.AreEqual(CategoryFilterMode.DenyAllExceptAllowed, node.CategoryFilterSettings.CategoryFilterMode);
            Assert.AreEqual(0, node.CategoryFilterSettings.CategoryFilters.Count);
            Assert.AreEqual(true, node.LoggingEnabled);
            Assert.AreEqual(0, node.MinimumPriority);
            Assert.AreEqual(true, node.TracingEnabled);

            LoggingSettings nodeData = node.LoggingSettings;

            Assert.AreEqual(CategoryFilterMode.DenyAllExceptAllowed, nodeData.CategoryFilterMode);
            Assert.AreEqual(0, nodeData.CategoryFilters.Count);
            Assert.AreEqual("Test", nodeData.DistributionStrategies["Test"].Name);
            Assert.AreEqual(true, nodeData.LoggingEnabled);
            Assert.AreEqual(0, nodeData.MinimumPriority);
            Assert.AreEqual(true, nodeData.TracingEnabled);
        }
        public void RuntimeTest()
        {
            GeneratedHierarchy.Open();
            Assert.AreEqual(0, ConfigurationErrorsCount);

            ConfigurationContext configurationContext = GeneratedHierarchy.ConfigurationContext;

            if (configurationContext.IsValidSection(LoggingSettings.SectionName))
            {
                LoggingSettings clientSettings = configurationContext.GetConfiguration(LoggingSettings.SectionName) as LoggingSettings;
                if (clientSettings != null)
                {
                    ClientSettingsNode settingsNode = new ClientSettingsNode(clientSettings);
                    Assert.AreEqual(CategoryFilterMode.DenyAllExceptAllowed, settingsNode.CategoryFilterSettings.CategoryFilterMode);
                    Assert.AreEqual(false, settingsNode.LoggingEnabled);
                    Assert.AreEqual(1, settingsNode.MinimumPriority);
                    Assert.AreEqual(false, settingsNode.TracingEnabled);
                }
            }
            else
            {
                Assert.Fail(String.Format("Can not load section: {0}", LoggingSettings.SectionName));
            }
        }