public void ExceptionTypeNodeDefaults()
        {
            ExceptionTypeNode exceptionTypeNode = new ExceptionTypeNode();

            Assert.AreEqual("Exception", exceptionTypeNode.Name);
            Assert.AreEqual(PostHandlingAction.NotifyRethrow, exceptionTypeNode.PostHandlingAction);
        }
        public void OpenAndSaveTest()
        {
            Hierarchy.Load();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            Hierarchy.Open();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            Assert.AreEqual(1, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionHandlingSettingsNode)).Count);
            Assert.AreEqual(1, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionPolicyNode)).Count);
            Assert.AreEqual(2, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionTypeNode)).Count);
            Assert.AreEqual(3, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionHandlerNode)).Count);
            Hierarchy.Load();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            Hierarchy.Open();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            Assert.AreEqual(1, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionHandlingSettingsNode)).Count);
            Assert.AreEqual(1, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionPolicyNode)).Count);
            Assert.AreEqual(2, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionTypeNode)).Count);
            Assert.AreEqual(3, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionHandlerNode)).Count);
            FaultContractExceptionHandlerNode faultNode = new FaultContractExceptionHandlerNode();
            ExceptionTypeNode node = (ExceptionTypeNode)Hierarchy.FindNodeByType(ApplicationNode, typeof(ExceptionTypeNode));

            node.AddNode(faultNode);
            faultNode = (FaultContractExceptionHandlerNode)Hierarchy.FindNodeByType(typeof(FaultContractExceptionHandlerNode));
            faultNode.FaultContractType = typeof(object).AssemblyQualifiedName;
            faultNode.ExceptionMessage  = "my exception message";
            Hierarchy.Save();
            Hierarchy.Load();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            Hierarchy.Open();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            faultNode = (FaultContractExceptionHandlerNode)Hierarchy.FindNodeByType(typeof(FaultContractExceptionHandlerNode));
            faultNode.Remove();
            Hierarchy.Save();
        }
        public void AddExceptionTypeNodeChangesNodeName()
        {
            AddExceptionTypeNodeCommandTest addExceptionTypeNodeCommand = new AddExceptionTypeNodeCommandTest(ServiceProvider);

            addExceptionTypeNodeCommand.Execute(ApplicationNode);
            ExceptionTypeNode exceptionTypeNode = (ExceptionTypeNode)Hierarchy.FindNodeByType(ApplicationNode, typeof(ExceptionTypeNode));

            Assert.IsNotNull(exceptionTypeNode);
            Assert.AreEqual("Exception", exceptionTypeNode.Name);
        }
        public void ExceptionTypeNameBecomesName()
        {
            Type              exceptionType = typeof(AppDomainUnloadedException);
            string            name          = "some name";
            ExceptionTypeData data          = new ExceptionTypeData();

            data.Type = exceptionType;
            data.Name = name;
            ExceptionTypeNode node = new ExceptionTypeNode(data);

            Assert.AreEqual(exceptionType.Name, node.Name);
        }
        public void PropertiesTest()
        {
            string typeName = "testType";
            PostHandlingAction postHandlingAction = PostHandlingAction.ThrowNewException;

            ExceptionTypeNode node = new ExceptionTypeNode();
            node.TypeName = typeName;
            node.PostHandlingAction = postHandlingAction;

            Assert.AreEqual(typeName, node.TypeName);
            Assert.AreEqual(postHandlingAction, node.PostHandlingAction);
        }
        public void ExceptionTypeDataTest()
        {
            Type exceptionType        = typeof(AppDomainUnloadedException);
            PostHandlingAction action = PostHandlingAction.None;
            ExceptionTypeData  data   = new ExceptionTypeData();

            data.Type = exceptionType;
            data.PostHandlingAction = action;
            ExceptionTypeNode node = new ExceptionTypeNode(data);

            Assert.AreEqual(exceptionType.Name, node.Name);
            Assert.AreEqual(action, node.PostHandlingAction);
        }
        public void PropertiesTest()
        {
            string             typeName           = "testType";
            PostHandlingAction postHandlingAction = PostHandlingAction.ThrowNewException;

            ExceptionTypeNode node = new ExceptionTypeNode();

            node.TypeName           = typeName;
            node.PostHandlingAction = postHandlingAction;

            Assert.AreEqual(typeName, node.TypeName);
            Assert.AreEqual(postHandlingAction, node.PostHandlingAction);
        }
        public void OpenAndSaveTest()
        {
            Hierarchy.Load();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            Hierarchy.Open();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);

            Assert.AreEqual(1, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionHandlingSettingsNode)).Count);
            Assert.AreEqual(1, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionPolicyNode)).Count);
            Assert.AreEqual(2, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionTypeNode)).Count);
            Assert.AreEqual(3, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionHandlerNode)).Count);

            Hierarchy.Load();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            Hierarchy.Open();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);

            Assert.AreEqual(1, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionHandlingSettingsNode)).Count);
            Assert.AreEqual(1, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionPolicyNode)).Count);
            Assert.AreEqual(2, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionTypeNode)).Count);
            Assert.AreEqual(3, Hierarchy.FindNodesByType(ApplicationNode, typeof(ExceptionHandlerNode)).Count);

            ExceptionTypeNode node = (ExceptionTypeNode)Hierarchy.FindNodeByType(ApplicationNode, typeof(ExceptionTypeNode));
            AddLoggingExceptionHandlerCommand cmd = new AddLoggingExceptionHandlerCommand(ServiceProvider);

            cmd.Execute(node);
            Assert.IsNotNull(Hierarchy.FindNodeByType(typeof(LoggingSettingsNode)));
            LoggingExceptionHandlerNode logehNode = (LoggingExceptionHandlerNode)Hierarchy.FindNodeByType(typeof(LoggingExceptionHandlerNode));

            logehNode.FormatterType = typeof(XmlExceptionFormatter);
            logehNode.LogCategory   = (CategoryTraceSourceNode)Hierarchy.FindNodeByType(typeof(CategoryTraceSourceNode));
            Hierarchy.Save();



            Hierarchy.Load();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            Hierarchy.Open();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);

            logehNode = (LoggingExceptionHandlerNode)Hierarchy.FindNodeByType(typeof(LoggingExceptionHandlerNode));
            logehNode.Remove();

            Hierarchy.Save();
        }