Example #1
0
        public void CanCreateRuleDataFromCustomAttributeMatchingRuleNode()
        {
            LogCallHandlerNode handlerNode = new LogCallHandlerNode();

            handlerNode.Name          = "logHandler";
            handlerNode.AfterMessage  = "AfterMessage";
            handlerNode.BeforeMessage = "BeforeMessage";
            handlerNode.Categories.Add(new LogCategory("Cat1"));
            handlerNode.Categories.Add(new LogCategory("Cat2"));
            handlerNode.EventId                = 124;
            handlerNode.IncludeCallStack       = true;
            handlerNode.IncludeCallTime        = true;
            handlerNode.IncludeParameterValues = true;
            handlerNode.LogBehavior            = HandlerLogBehavior.After;
            handlerNode.Priority               = 123;
            handlerNode.Severity               = System.Diagnostics.TraceEventType.Error;

            LogCallHandlerData handlerData = handlerNode.CreateCallHandlerData() as LogCallHandlerData;

            Assert.IsNotNull(handlerData);
            Assert.AreEqual(handlerNode.Name, handlerData.Name);
            Assert.AreEqual(handlerNode.AfterMessage, handlerData.AfterMessage);
            Assert.AreEqual(handlerNode.BeforeMessage, handlerData.BeforeMessage);
            Assert.AreEqual(handlerNode.EventId, handlerData.EventId);
            Assert.AreEqual(handlerNode.IncludeCallStack, handlerData.IncludeCallStack);
            Assert.AreEqual(handlerNode.IncludeCallTime, handlerData.IncludeCallTime);
            Assert.AreEqual(handlerNode.IncludeParameterValues, handlerData.IncludeParameterValues);
            Assert.AreEqual(handlerNode.LogBehavior, handlerData.LogBehavior);
            Assert.AreEqual(handlerNode.Priority, handlerData.Priority);
            Assert.AreEqual(handlerNode.Severity, handlerData.Severity);
            Assert.AreEqual(handlerNode.Categories.Count, handlerData.Categories.Count);
            Assert.AreEqual(handlerNode.Categories[0].CategoryName, handlerData.Categories.Get(0).Name);
            Assert.AreEqual(handlerNode.Categories[1].CategoryName, handlerData.Categories.Get(1).Name);
        }
 public void DataDefaultsShouldMatchHandlerDefaults()
 {
     LogCallHandlerData data = new LogCallHandlerData("Log handler");
     Assert.AreEqual(LogCallHandlerDefaults.AfterMessage, data.AfterMessage);
     Assert.AreEqual(LogCallHandlerDefaults.BeforeMessage, data.BeforeMessage);
     Assert.AreEqual(0, data.Categories.Count);
     Assert.AreEqual(LogCallHandlerDefaults.EventId, data.EventId);
     Assert.AreEqual(LogCallHandlerDefaults.IncludeCallStack, data.IncludeCallStack);
     Assert.AreEqual(LogCallHandlerDefaults.IncludeCallTime, data.IncludeCallTime);
     Assert.AreEqual(LogCallHandlerDefaults.IncludeParameters, data.IncludeParameterValues);
     Assert.AreEqual(LogCallHandlerDefaults.LogAfterCall, data.LogBehavior == HandlerLogBehavior.BeforeAndAfter || data.LogBehavior == HandlerLogBehavior.After);
     Assert.AreEqual(LogCallHandlerDefaults.LogBeforeCall, data.LogBehavior == HandlerLogBehavior.BeforeAndAfter || data.LogBehavior == HandlerLogBehavior.Before);
     Assert.AreEqual(LogCallHandlerDefaults.Priority, data.Priority);
     Assert.AreEqual(LogCallHandlerDefaults.Severity, data.Severity);
     Assert.AreEqual(LogCallHandlerDefaults.Order, data.Order);
 }
Example #3
0
        public void DataDefaultsShouldMatchHandlerDefaults()
        {
            LogCallHandlerData data = new LogCallHandlerData("Log handler");

            Assert.AreEqual(LogCallHandlerDefaults.AfterMessage, data.AfterMessage);
            Assert.AreEqual(LogCallHandlerDefaults.BeforeMessage, data.BeforeMessage);
            Assert.AreEqual(0, data.Categories.Count);
            Assert.AreEqual(LogCallHandlerDefaults.EventId, data.EventId);
            Assert.AreEqual(LogCallHandlerDefaults.IncludeCallStack, data.IncludeCallStack);
            Assert.AreEqual(LogCallHandlerDefaults.IncludeCallTime, data.IncludeCallTime);
            Assert.AreEqual(LogCallHandlerDefaults.IncludeParameters, data.IncludeParameterValues);
            Assert.AreEqual(LogCallHandlerDefaults.LogAfterCall, data.LogBehavior == HandlerLogBehavior.BeforeAndAfter || data.LogBehavior == HandlerLogBehavior.After);
            Assert.AreEqual(LogCallHandlerDefaults.LogBeforeCall, data.LogBehavior == HandlerLogBehavior.BeforeAndAfter || data.LogBehavior == HandlerLogBehavior.Before);
            Assert.AreEqual(LogCallHandlerDefaults.Priority, data.Priority);
            Assert.AreEqual(LogCallHandlerDefaults.Severity, data.Severity);
        }
Example #4
0
        /// <summary>
        /// Converts the information stored in the node and generate
        /// the corresponding configuration element to store in
        /// an <see cref="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.IConfigurationSource" />.
        /// </summary>
        /// <returns>Newly created <see cref="LogCallHandlerData"/> containing
        /// the configuration data from this node.</returns>
        public override CallHandlerData CreateCallHandlerData()
        {
            LogCallHandlerData callHandlerData = new LogCallHandlerData(Name);

            callHandlerData.EventId                = eventId;
            callHandlerData.Severity               = severity;
            callHandlerData.Priority               = priority;
            callHandlerData.IncludeCallTime        = includeCallTime;
            callHandlerData.IncludeCallStack       = includeCallStack;
            callHandlerData.IncludeParameterValues = includeParameterValues;
            callHandlerData.BeforeMessage          = beforeMessage;
            callHandlerData.AfterMessage           = afterMessage;
            callHandlerData.LogBehavior            = logBehavior;
            foreach (LogCategory category in categories)
            {
                callHandlerData.Categories.Add(new LogCallHandlerCategoryEntry(category.CategoryName));
            }

            return(callHandlerData);
        }
        public void CanDeserializeLogCallHandlerData()
        {
            LogCallHandlerData data = new LogCallHandlerData("Logging Handler");
            data.AfterMessage = "This is the after message";
            data.BeforeMessage = "This is the before message";
            data.EventId = 89;
            data.Categories = new NamedElementCollection<LogCallHandlerCategoryEntry>();
            data.Categories.Add(new LogCallHandlerCategoryEntry("General"));
            data.Categories.Add(new LogCallHandlerCategoryEntry("Type {namespace}.{type}"));
            data.Categories.Add(new LogCallHandlerCategoryEntry("PIAB Logging"));
            data.IncludeCallStack = true;
            data.IncludeCallTime = true;
            data.IncludeParameterValues = true;
            data.LogBehavior = HandlerLogBehavior.After;
            data.Priority = 42;
            data.Severity = TraceEventType.Critical;
            data.Order = 8;

            LogCallHandlerData deserialized =
                (LogCallHandlerData)SerializeAndDeserializeHandler(data);

            Assert.AreEqual(data.Name, deserialized.Name);
            Assert.AreSame(typeof(LogCallHandler), deserialized.Type);
            Assert.AreEqual(data.AfterMessage, data.AfterMessage);
            Assert.AreEqual(data.BeforeMessage, deserialized.BeforeMessage);
            Assert.AreEqual(data.EventId, deserialized.EventId);
            Assert.IsNotNull(deserialized.Categories);
            Assert.AreEqual(data.Categories.Count, deserialized.Categories.Count);
            Assert.AreEqual(data.Categories.Get(0).Name, deserialized.Categories.Get(0).Name);
            Assert.AreEqual(data.Categories.Get(1).Name, deserialized.Categories.Get(1).Name);
            Assert.AreEqual(data.Categories.Get(2).Name, deserialized.Categories.Get(2).Name);
            Assert.AreEqual(data.IncludeCallStack, deserialized.IncludeCallStack);
            Assert.AreEqual(data.IncludeCallTime, deserialized.IncludeCallTime);
            Assert.AreEqual(data.IncludeParameterValues, deserialized.IncludeParameterValues);
            Assert.AreEqual(data.LogBehavior, deserialized.LogBehavior);
            Assert.AreEqual(data.Priority, deserialized.Priority);
            Assert.AreEqual(data.Severity, deserialized.Severity);
            Assert.AreEqual(data.Order, deserialized.Order);
        }
        public void AssembledCorrectlyLogCallHandler()
        {
            using (var configSource = new FileConfigurationSource("LogCallHandler.config", false))
            {
                PolicyInjectionSettings settings = new PolicyInjectionSettings();

                PolicyData policyData = new PolicyData("policy");
                LogCallHandlerData data = new LogCallHandlerData("fooHandler", 66);
                data.BeforeMessage = "before";
                data.AfterMessage = "after";
                data.IncludeCallTime = true;
                data.EventId = 100;
                data.Categories.Add(new LogCallHandlerCategoryEntry("category1"));
                data.Categories.Add(new LogCallHandlerCategoryEntry("category2"));
                policyData.MatchingRules.Add(new CustomMatchingRuleData("matchesEverything", typeof(AlwaysMatchingRule)));
                policyData.Handlers.Add(data);
                settings.Policies.Add(policyData);

                IUnityContainer container = new UnityContainer().AddNewExtension<Interception>();
                settings.ConfigureContainer(container, configSource);
                new UnityContainerConfigurator(container)
                    .RegisterAll(configSource,
                    (ITypeRegistrationsProvider)configSource.GetSection(LoggingSettings.SectionName));

                InjectionFriendlyRuleDrivenPolicy policy = container.Resolve<InjectionFriendlyRuleDrivenPolicy>("policy");

                LogCallHandler handler = (LogCallHandler)
                    (policy.GetHandlersFor(GetMethodImpl(MethodBase.GetCurrentMethod()), container)).ElementAt(0);
                Assert.IsNotNull(handler);
                Assert.AreEqual(66, handler.Order);
                Assert.AreEqual("before", handler.BeforeMessage);
                Assert.AreEqual("after", handler.AfterMessage);
                Assert.AreEqual(true, handler.IncludeCallTime);
                Assert.AreEqual(100, handler.EventId);
                Assert.AreEqual(2, handler.Categories.Count);
                CollectionAssert.Contains(handler.Categories, "category1");
                CollectionAssert.Contains(handler.Categories, "category2");
            }
        }