public void OpenAndSaveTest()
        {
            GeneratedHierarchy.Load();
            Assert.AreEqual(0, ConfigurationErrorLogService.ConfigurationErrors.Count);
            GeneratedHierarchy.Open();
            Assert.AreEqual(0, ConfigurationErrorLogService.ConfigurationErrors.Count);

            CacheManagerSettingsNode rootNode = (CacheManagerSettingsNode)GeneratedHierarchy.FindNodeByType(typeof(CacheManagerSettingsNode));
            Assert.IsNotNull(rootNode);
            Assert.AreEqual("InMemoryPersistence", rootNode.DefaultCacheManager.Name);
            rootNode.DefaultCacheManager.Name = "BadData";

            GeneratedHierarchy.Save();
            Assert.AreEqual(0, ConfigurationErrorLogService.ConfigurationErrors.Count);

            ApplicationData data = ApplicationData.FromCurrentAppDomain();
            ApplicationConfigurationNode applicationNode = new ApplicationConfigurationNode(data);
            IUIHierarchy newHierarchy = CreateHierarchyAndAddToHierarchyService(applicationNode, CreateDefaultConfiguration());
            HierarchyService.SelectedHierarchy = newHierarchy;
            newHierarchy.Open();
            Assert.AreEqual(0, ConfigurationErrorLogService.ConfigurationErrors.Count);

            rootNode = (CacheManagerSettingsNode)newHierarchy.FindNodeByType(typeof(CacheManagerSettingsNode));

            Assert.AreEqual("BadData", rootNode.DefaultCacheManager.Name);

            rootNode.DefaultCacheManager.Name = "InMemoryPersistence";

            newHierarchy.Save();
        }
 public void ConfigurationFileTest()
 {
     ApplicationData applicationData = ApplicationData.FromCurrentAppDomain();
     ApplicationConfigurationNode node = new ApplicationConfigurationNode(applicationData);
     CreateHierarchyAndAddToHierarchyService(node, new ConfigurationContext(node.ConfigurationFile));
     Assert.AreEqual(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile, node.ConfigurationFile);
 }
 public override void SetUp()
 {
     base.SetUp();
     ApplicationData data = ApplicationData.FromCurrentAppDomain();
     applicationNode = new ApplicationConfigurationNode(data);
     CreateHierarchyAndAddToHierarchyService(applicationNode, CreateDefaultConfiguration());
 }
Example #4
0
        /// <summary>
        /// <para>Edits the value of the specified object using the editor style indicated by <seealso cref="UITypeEditor.GetEditStyle(ITypeDescriptorContext)"/>.</para>
        /// </summary>
        /// <param name="context">An <see cref="ITypeDescriptorContext"/> that can be used to gain additional context information. </param>
        /// <param name="provider">An <see cref="IServiceProvider"/> that this editor can use to obtain services.</param>
        /// <param name="value">The object to edit.</param>
        /// <returns>The new value of the object.</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 service = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

                Debug.Assert(service != null, "No editor service; we cannot edit the value");
                if (service != null)
                {
                    ConfigurationNode            currentNode = (ConfigurationNode)context.Instance;
                    ApplicationConfigurationNode appNode     = GetApplicationNode(currentNode);
                    ReferenceEditorUI            control     = new ReferenceEditorUI(appNode, GetReferenceType(context), (ConfigurationNode)value, service, IsRequired(context));
                    service.DropDownControl(control);
                    if (control.SelectedNode != null)
                    {
                        Type propertyType     = context.PropertyDescriptor.PropertyType;
                        Type selectedNodeType = control.SelectedNode.GetType();
                        if (propertyType == selectedNodeType || selectedNodeType.IsSubclassOf(propertyType))
                        {
                            return(control.SelectedNode);
                        }
                    }
                }
            }
            return(null);
        }
Example #5
0
 public void Initialize()
 {
     SolutionConfigurationNode node = new SolutionConfigurationNode();
     ApplicationData applicationData = ApplicationData.FromCurrentAppDomain();
     appNode = new ApplicationConfigurationNode(applicationData.Name, applicationData);
     appNode.Load(null);
     fileManager = new FileManager(node);
 }
 public void NameTest()
 {
     string name = "MyBlock";
     ApplicationData applicationData = ApplicationData.FromCurrentAppDomain();
     applicationData.Name = name;
     ApplicationConfigurationNode node = new ApplicationConfigurationNode(applicationData);
     CreateHierarchyAndAddToHierarchyService(node, new ConfigurationContext(node.ConfigurationFile));
     Assert.AreEqual(name, node.Name);
 }
 public override void SetUp()
 {
     base.SetUp();
     ApplicationData data = ApplicationData.FromCurrentAppDomain();
     applicationNode = new ApplicationConfigurationNode(data);
     CreateHierarchyAndAddToHierarchyService(applicationNode, CreateDefaultConfiguration());
     CachingConfigurationDesignManager manager = new CachingConfigurationDesignManager();
     manager.Register(Host);
 }
        public void Register()
        {
            ConfigurationDesignManager manager = new ConfigurationDesignManager();
            ApplicationData data = ApplicationData.FromCurrentAppDomain();
            ApplicationConfigurationNode applicationNode = new ApplicationConfigurationNode(data.Name, data);

            manager.Register(applicationNode, null);

            Assert.AreEqual(1, applicationNode.NewCommand.SubCommands.Count);
        }
 public void FindTypeNodeInHierarchy()
 {
     ApplicationData applicationData = ApplicationData.FromCurrentAppDomain();
     ApplicationConfigurationNode applicationNode = new ApplicationConfigurationNode(applicationData);
     IUIHierarchy hierarchy = CreateHierarchyAndAddToHierarchyService(applicationNode, new ConfigurationContext(applicationNode.ConfigurationFile));
     MyConfigNode configNode = new MyConfigNode("MyBlock");
     applicationNode.Nodes.Add(configNode);
     ConfigurationNode node = hierarchy.FindNodeByType(typeof(MyConfigNode));
     Assert.IsNotNull(node);
     Assert.AreSame(configNode, node);
 }
        public void RegisterTest()
        {
            CachingDatabaseConfigurationDesignManager manager = new CachingDatabaseConfigurationDesignManager();
            ApplicationData data = ApplicationData.FromCurrentAppDomain();
            ApplicationConfigurationNode node = new ApplicationConfigurationNode(data);
            CreateHierarchyAndAddToHierarchyService(node, CreateDefaultConfiguration());
            manager.Register(Host);

            DataCacheStorageNode testNode = NodeCreationService.CreateNode(typeof(DataCacheStorageData), new object[] {new DataCacheStorageData()}) as DataCacheStorageNode;

            Assert.IsNotNull(testNode);
        }
 public void BuildContextTest()
 {
     ApplicationData data = ApplicationData.FromCurrentAppDomain();
     ApplicationConfigurationNode applicationNode = new ApplicationConfigurationNode(data);
     CreateHierarchyAndAddToHierarchyService(applicationNode, CreateDefaultConfiguration());
     DataConfigurationDesignManager b = new DataConfigurationDesignManager();
     b.Register(Host);
     b.Open(Host);
     ConfigurationDictionary dictionary = new ConfigurationDictionary();
     b.BuildContext(Host, dictionary);
     Assert.AreEqual(1, dictionary.Count);
     Assert.IsTrue(dictionary.Contains("dataConfiguration"));
 }
        public void SaveDefaultAuthenticationProviderAndSaveAndReloadsCorrectly()
        {
            GeneratedHierarchy.Load();

            AddConfigurationSectionCommand cmd = new AddConfigurationSectionCommand(Host, typeof(SecuritySettingsNode), SecuritySettings.SectionName);
            cmd.Execute(GeneratedApplicationNode);

            SecuritySettingsNode securitySettingsNode = GeneratedHierarchy.FindNodeByType(typeof(SecuritySettingsNode)) as SecuritySettingsNode;
            Assert.IsNotNull(securitySettingsNode);
            AuthenticationProviderCollectionNode authenticationProviderCollectionNode = GeneratedHierarchy.FindNodeByType(securitySettingsNode, typeof(AuthenticationProviderCollectionNode)) as AuthenticationProviderCollectionNode;
            Assert.IsNotNull(authenticationProviderCollectionNode);

            AddChildNodeCommand addChildNodeCommand = new AddChildNodeCommand(Host, typeof(DbAuthenticationProviderNode));
            addChildNodeCommand.Execute(authenticationProviderCollectionNode);
            Assert.AreEqual(typeof(DbAuthenticationProviderNode), addChildNodeCommand.ChildNode.GetType());
            DbAuthenticationProviderNode dbAuthenticationProviderNode = (DbAuthenticationProviderNode)addChildNodeCommand.ChildNode;
            securitySettingsNode.DefaultAuthenticationInstance = (AuthenticationProviderNode)addChildNodeCommand.ChildNode;

            addChildNodeCommand = new AddChildNodeCommand(Host, typeof(HashAlgorithmProviderNode));
            CryptographySettingsNode cryptographySettingsNode = GeneratedHierarchy.FindNodeByType(typeof(CryptographySettingsNode)) as CryptographySettingsNode;
            Assert.IsNotNull(cryptographySettingsNode);
            HashProviderCollectionNode hashProviderCollectionNode = GeneratedHierarchy.FindNodeByType(typeof(HashProviderCollectionNode)) as HashProviderCollectionNode;
            Assert.IsNotNull(hashProviderCollectionNode);
            addChildNodeCommand.Execute(hashProviderCollectionNode);
            Assert.AreEqual(typeof(HashAlgorithmProviderNode), addChildNodeCommand.ChildNode.GetType());

            dbAuthenticationProviderNode.HashProvider = (HashProviderNode)addChildNodeCommand.ChildNode;

            DatabaseSettingsNode databaseSettingsNode = GeneratedHierarchy.FindNodeByType(typeof(DatabaseSettingsNode)) as DatabaseSettingsNode;
            Assert.IsNotNull(databaseSettingsNode);
            InstanceCollectionNode instanceCollectionNode = GeneratedHierarchy.FindNodeByType(databaseSettingsNode,  typeof(InstanceCollectionNode)) as InstanceCollectionNode;
            Assert.IsNotNull(instanceCollectionNode);
            Assert.IsTrue(instanceCollectionNode.Nodes.Count > 0);
            InstanceNode instanceNode = (InstanceNode)instanceCollectionNode.Nodes[0];

            dbAuthenticationProviderNode.Database = instanceNode;

            ValidateNodeCommand validateNodeCommand = new ValidateNodeCommand(Host);
            validateNodeCommand.Execute(GeneratedApplicationNode);
            Assert.AreEqual(0, ConfigurationErrorsCount);

            SaveApplicationConfigurationNodeCommand saveCmd = new SaveApplicationConfigurationNodeCommand(Host);
            saveCmd.Execute(GeneratedApplicationNode);

            ApplicationConfigurationNode applicationConfigurationNode = new ApplicationConfigurationNode(ApplicationData.FromCurrentAppDomain());
            IUIHierarchy hierarchy = CreateHierarchyAndAddToHierarchyService(applicationConfigurationNode, CreateDefaultConfiguration());
            HierarchyService.SelectedHierarchy = hierarchy;
            hierarchy.Open();
        }
        private ConfigurationSectionCollectionNode SelectConfigurationSectionsNode()
        {
            IUIHierarchy hierarchy = UIHierarchyService.SelectedHierarchy;
            ApplicationConfigurationNode applicationNode = hierarchy.RootNode as ApplicationConfigurationNode;

            Debug.Assert(applicationNode != null, "Expected an application node to be root for this node.");
            ConfigurationSectionCollectionNode sectionsNode = (ConfigurationSectionCollectionNode)hierarchy.FindNodeByType(hierarchy.RootNode, typeof(ConfigurationSectionCollectionNode));

            if (sectionsNode == null)
            {
                sectionsNode = new ConfigurationSectionCollectionNode();
                applicationNode.Nodes.AddWithDefaultChildren(sectionsNode);
            }
            return(sectionsNode);
        }
 /// <summary>
 /// <para>Creates a new <see cref="ApplicationConfigurationNode"/> object and adds it to the solution.</para>
 /// </summary>
 /// <param name="node">
 /// <para>The <see cref="ApplicationConfigurationNode"/> is the root of an <see cref="IUIHierarchy"/> so the <paramref name="node"/> is not used, so passing <see langword="null"/> is expected.</para>
 /// </param>
 protected override void ExecuteCore(ConfigurationNode node)
 {
     try
     {
         UIService.BeginUpdate();
         ApplicationConfigurationNode appNode = new ApplicationConfigurationNode(applicationData);
         IUIHierarchy hierarchy = ConfigurationUIHierarchyFactory.Create(appNode, ServiceProvider);
         UIHierarchyService.AddHierarchy(hierarchy);
         UIService.SetUIDirty(hierarchy);
     }
     finally
     {
         UIService.EndUpdate();
     }
 }
        public void BuildContext()
        {
            ApplicationData data = ApplicationData.FromCurrentAppDomain();
            ApplicationConfigurationNode applicationNode = new ApplicationConfigurationNode(data.Name, data);
            ConfigurationDesignManager manager = new ConfigurationDesignManager();
            manager.Register(applicationNode, null);
            foreach (ConfigurationNodeCommand command in applicationNode.NewCommand.SubCommands)
            {
                command.Execute();
            }

            ConfigurationDictionary dictionary = new ConfigurationDictionary();
            manager.BuildContext(applicationNode, dictionary);
            Assert.AreEqual(1, dictionary.Count);
            Assert.IsTrue(dictionary.Contains(CryptographySettings.SectionName));
        }
        private DialogResult GetApplicationFileFromUI()
        {
            ApplicationConfigurationNode node = (ApplicationConfigurationNode)ServiceHelper.GetCurrentRootNode(ServiceProvider);
            SaveFileDialog dialog             = new SaveFileDialog();

            dialog.Filter = SR.ConfigurationFileDialogFilter;
            dialog.Title  = System.String.Concat(SR.SaveApplicationCaption, " : ", node.Name);
            IUIService uiService = ServiceHelper.GetUIService(ServiceProvider);

            System.Windows.Forms.DialogResult result = uiService.ShowSaveDialog(dialog);
            if (System.Windows.Forms.DialogResult.OK == result)
            {
                FileName = dialog.FileName;
                node.ConfigurationFile = FileName;
                node.Hierarchy.StorageTable.MetaConfigurationFile = FileName;
            }
            return(result);
        }
        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);
        }
 public override void SetUp()
 {
     base.SetUp ();
     ApplicationConfigurationNode appNode = new ApplicationConfigurationNode(ApplicationData.FromCurrentAppDomain());
     loggingHierarchy = CreateHierarchyAndAddToHierarchyService(appNode, CreateDefaultConfiguration());
     HierarchyService.SelectedHierarchy = loggingHierarchy;
     loggingHierarchy.Open();
     HierarchyService.SelectedHierarchy = GeneratedHierarchy;
 }
        public void RenamingOneDistributionStrategyLeavesOnlyOneStrategy()
        {
            string name = "Test Custom Strategy 1";
            GeneratedHierarchy.Open();
            LoggingSettingsNode node = new LoggingSettingsNode();
            GeneratedApplicationNode.Nodes.AddWithDefaultChildren(node);
            DistributionStrategyCollectionNode distributionStrategyCollectionNode = GeneratedHierarchy.FindNodeByType(typeof(DistributionStrategyCollectionNode)) as DistributionStrategyCollectionNode;
            Assert.IsNotNull(distributionStrategyCollectionNode);
            distributionStrategyCollectionNode.Nodes.Clear();
            CustomDistributionStrategyNode customNode = new CustomDistributionStrategyNode();
            distributionStrategyCollectionNode.Nodes.AddWithDefaultChildren(customNode);
            customNode.TypeName = typeof(InProcDistributionStrategyData).AssemblyQualifiedName;
            customNode.Name = name;
            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);
            distributionStrategyCollectionNode = hierarchy.FindNodeByType(appNode, typeof(DistributionStrategyCollectionNode)) as DistributionStrategyCollectionNode;
            Assert.IsNotNull(distributionStrategyCollectionNode);
            ConfigurationNode [] nodes = hierarchy.FindNodesByType(distributionStrategyCollectionNode, typeof(CustomDistributionStrategyNode));
            Assert.AreEqual(1, nodes.Length);
            Assert.AreEqual(name, nodes[0].Name);
        }
        public void OpenAndSaveTest()
        {
            GeneratedHierarchy.Open();
            Assert.AreEqual(0, ConfigurationErrorsCount);

            ConfigurationNode rootNode = GeneratedHierarchy.FindNodeByType(typeof(DistributorSettingsNode));

            Assert.IsNotNull(rootNode);
            Assert.AreEqual(typeof(DistributorSettingsNode), rootNode.GetType());

            GeneratedHierarchy.Save();

            ApplicationConfigurationNode node = new ApplicationConfigurationNode(ApplicationData.FromCurrentAppDomain());
            IUIHierarchy hierarchy = CreateHierarchyAndAddToHierarchyService(node, CreateDefaultConfiguration());
            HierarchyService.SelectedHierarchy = hierarchy;
            hierarchy.Open();
            Assert.AreEqual(0, ConfigurationErrorsCount);

            Assert.IsTrue(hierarchy.ConfigurationContext.IsValidSection(DistributorSettings.SectionName));
        }
 /// <summary>
 /// <para>Creates a new <see cref="ApplicationConfigurationNode"/> object and adds it to the solution.</para>
 /// </summary>
 /// <param name="node">
 /// <para>The <see cref="ApplicationConfigurationNode"/> is the root of an <see cref="IUIHierarchy"/> so the <paramref name="node"/> is not used, so passing <see langword="null"/> is expected.</para>
 /// </param>
 protected override void ExecuteCore(ConfigurationNode node)
 {
     try
     {
         UIService.BeginUpdate();
         ApplicationConfigurationNode appNode = new ApplicationConfigurationNode(applicationData);
         IUIHierarchy hierarchy = ConfigurationUIHierarchyFactory.Create(appNode, ServiceProvider);
         UIHierarchyService.AddHierarchy(hierarchy);
         UIService.SetUIDirty(hierarchy);
     }
     finally
     {
         UIService.EndUpdate();
     }
 }