public static CallHandlerData SerializeAndDeserializeHandler(CallHandlerData handlerData)
        {
            PolicyData policy = new PolicyData("policy");

            policy.Handlers.Add(handlerData);

            PolicyInjectionSettings settings = new PolicyInjectionSettings();

            settings.Policies.Add(policy);

            Dictionary <string, ConfigurationSection> sections = new Dictionary <string, ConfigurationSection>();

            sections.Add(PolicyInjectionSettings.SectionName, settings);

            IConfigurationSource configurationSource =
                ConfigurationTestHelper.SaveSectionsInFileAndReturnConfigurationSource(sections);

            PolicyInjectionSettings deserializedSection =
                configurationSource.GetSection(PolicyInjectionSettings.SectionName) as PolicyInjectionSettings;

            Assert.IsNotNull(deserializedSection);

            PolicyData deserializedPolicy = deserializedSection.Policies.Get(0);

            Assert.IsNotNull(deserializedPolicy);
            return(deserializedPolicy.Handlers.Get(0));
        }
        public void Setup()
        {
            callHandlerData =
                new LogCallHandlerData("logging")
            {
                Order = 400,

                LogBehavior            = HandlerLogBehavior.Before,
                BeforeMessage          = "before",
                AfterMessage           = "after",
                EventId                = 1000,
                IncludeCallStack       = true,
                IncludeCallTime        = false,
                IncludeParameterValues = true,
                Priority               = 500,
                Severity               = TraceEventType.Warning,
                Categories             =
                {
                    new LogCallHandlerCategoryEntry("cat1"),
                    new LogCallHandlerCategoryEntry("cat2"),
                    new LogCallHandlerCategoryEntry("cat3")
                }
            };

            this.logWriter = new LogWriter(new LoggingConfiguration());
            Logger.SetLogWriter(this.logWriter, false);
        }
 public void Setup()
 {
     callHandlerData =
         new CustomCallHandlerData("custom", typeof(GlobalCountCallHandler))
     {
         Order      = 100,
         Attributes = { { "callhandler", "bar" }, { "bar", "baz" } }
     };
 }
 public void Setup()
 {
     callHandlerData =
         new ExceptionCallHandlerData("exception")
     {
         Order = 400,
         ExceptionPolicyName = "policy"
     };
 }
 public void Setup()
 {
     callHandlerData =
         new ValidationCallHandlerData("validation")
     {
         Order = 400,
         SpecificationSource = SpecificationSource.Configuration,
         RuleSet             = "ruleset"
     };
 }
 public void Setup()
 {
     callHandlerData =
         new ValidationCallHandlerData("validation")
     {
         Order = 300,
         SpecificationSource = SpecificationSource.Attributes,
         RuleSet             = "ruleset"
     };
 }
 public void Setup()
 {
     callHandlerData =
         new AuthorizationCallHandlerData("authorization")
     {
         AuthorizationProvider = "provider",
         OperationName         = "operation",
         Order = 200
     };
 }
        public void CanSerializeConfigurationFixture()
        {
            PolicyInjectionSettings settings = new PolicyInjectionSettings();

            PolicyData policy1 = new PolicyData(policy1Name);
            PolicyData policy2 = new PolicyData(policy2Name);

            settings.Policies.Add(policy1);
            settings.Policies.Add(policy2);

            CustomCallHandlerData handler1 = new CustomCallHandlerData(handler1Name, typeof(CallCountHandler));

            handler1.SetAttributeValue("customHandlerAttribute", "customHandlerAttributeValue");

            CustomMatchingRuleData customMatchingRule = new CustomMatchingRuleData(matchingRule1Name, typeof(TypeMatchingAssignmentRule));

            customMatchingRule.SetAttributeValue("customMatchingRuleAttribute", "customMatchingRuleAttributeValue");

            policy1.Handlers.Add(handler1);
            policy1.MatchingRules.Add(customMatchingRule);

            Dictionary <string, ConfigurationSection> sections = new Dictionary <string, ConfigurationSection>();

            sections.Add(PolicyInjectionSettings.SectionName, settings);

            IConfigurationSource configurationSource = ConfigurationTestHelper.SaveSectionsInFileAndReturnConfigurationSource(sections);

            PolicyInjectionSettings deserializedSection = (PolicyInjectionSettings)configurationSource.GetSection(PolicyInjectionSettings.SectionName);

            Assert.AreEqual(2, deserializedSection.Policies.Count);

            PolicyData deserializedPolicy1 = deserializedSection.Policies.Get(0);

            Assert.IsNotNull(deserializedPolicy1);
            Assert.AreEqual(policy1Name, deserializedPolicy1.Name);

            CallHandlerData deserializedHandler = deserializedPolicy1.Handlers.Get(0);

            Assert.IsNotNull(deserializedHandler);
            Assert.IsNotNull(deserializedHandler as CustomCallHandlerData);
            Assert.AreEqual(handler1Name, deserializedHandler.Name);
            Assert.AreEqual(typeof(CallCountHandler), deserializedHandler.Type);
            Assert.AreEqual("customHandlerAttributeValue", (string)deserializedHandler.ElementInformation.Properties["customHandlerAttribute"].Value);

            Assert.AreEqual(policy2Name, deserializedSection.Policies.Get(1).Name);

            MatchingRuleData deserializedMatchingRule = deserializedPolicy1.MatchingRules.Get(0);

            Assert.IsNotNull(deserializedMatchingRule as CustomMatchingRuleData);
            Assert.AreEqual(matchingRule1Name, deserializedMatchingRule.Name);
            Assert.AreEqual(typeof(TypeMatchingAssignmentRule), deserializedMatchingRule.Type);
            Assert.AreEqual("customMatchingRuleAttributeValue", (string)deserializedMatchingRule.ElementInformation.Properties["customMatchingRuleAttribute"].Value);
        }
示例#9
0
 public void Setup()
 {
     callHandlerData =
         new PerformanceCounterCallHandlerData("perf counter")
     {
         Order                        = 300,
         CategoryName                 = "category",
         InstanceName                 = "instance",
         UseTotalCounter              = true,
         IncrementNumberOfCalls       = false,
         IncrementCallsPerSecond      = true,
         IncrementAverageCallDuration = false,
         IncrementTotalExceptions     = true,
         IncrementExceptionsPerSecond = false
     };
 }
示例#10
0
        private PolicyData BuildPolicyData(PolicyNode policyNode)
        {
            PolicyData policyData = new PolicyData(policyNode.Name);

            foreach (MatchingRuleNode ruleNode in MatchingRuleNodesInPolicy(policyNode))
            {
                MatchingRuleData ruleData = ruleNode.GetConfigurationData();
                policyData.MatchingRules.Add(ruleData);
            }

            foreach (CallHandlerNode handlerNode in CallHandlerNodesInPolicy(policyNode))
            {
                CallHandlerData handlerData = handlerNode.CreateCallHandlerData();
                policyData.Handlers.Add(handlerData);
            }
            return(policyData);
        }
示例#11
0
        protected override void Arrange()
        {
            updatableConfigurationSource = new ConfigurationSourceUpdatable();

            matchingRuleData1      = new MemberNameMatchingRuleData("Member()");
            matchingRuleData1.Name = "matchingRuleData1";

            callHandler1 = new CustomCallHandlerData("callHandler1", typeof(GlobalCountCallHandler));

            policy1      = new PolicyData();
            policy1.Name = "policy1";

            policy1.MatchingRules.Add(matchingRuleData1);
            policy1.Handlers.Add(callHandler1);

            settings = new PolicyInjectionSettings();
            settings.Policies.Add(policy1);

            updatableConfigurationSource.Add(PolicyInjectionSettings.SectionName, settings);

            container             = new UnityContainer();
            containerConfigurator = new UnityContainerConfigurator(container);
            EnterpriseLibraryContainer.ConfigureContainer(containerConfigurator, updatableConfigurationSource);
        }
示例#12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CallHandlerNode"/> class representing a <see cref="CallHandlerData"/>.
 /// </summary>
 /// <param name="callHandlerData">The <see cref="CallHandlerData"/> to represent.</param>
 public CallHandlerNode(CallHandlerData callHandlerData)
     : base(callHandlerData.Name)
 {
 }