Beispiel #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CustomMatchingRuleNode"/> class for representing a <see cref="CustomMatchingRuleData"/> instance.
 /// </summary>
 /// <param name="ruleData">The <see cref="CustomMatchingRuleData"/> to represent.</param>
 public CustomMatchingRuleNode(CustomMatchingRuleData ruleData)
     : base(ruleData)
 {
     typeName = ruleData.TypeName;
     foreach (string key in ruleData.Attributes)
     {
         editableAttributes.Add(new EditableKeyValue(key, ruleData.Attributes[key]));
     }
 }
Beispiel #2
0
        /// <summary>
        /// Returs the represented <see cref="CustomMatchingRuleData"/> instance.
        /// </summary>
        /// <returns>A newly created <see cref="CustomMatchingRuleData"/> instance.</returns>
        public override MatchingRuleData GetConfigurationData()
        {
            CustomMatchingRuleData ruleData = new CustomMatchingRuleData(Name, typeName);

            foreach (EditableKeyValue kv in editableAttributes)
            {
                ruleData.Attributes.Add(kv.Key, kv.Value);
            }
            return(ruleData);
        }
        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);
        }
        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);
        }
Beispiel #5
0
        public void CanCreateRuleDataFromCustomMatchingRuleNode()
        {
            CustomMatchingRuleNode ruleNode = new CustomMatchingRuleNode();

            ruleNode.Name = "RuleName";
            ruleNode.Type = "custom rule type";
            ruleNode.Attributes.Add(new Microsoft.Practices.EnterpriseLibrary.Configuration.Design.EditableKeyValue("Key1", "value1"));
            ruleNode.Attributes.Add(new Microsoft.Practices.EnterpriseLibrary.Configuration.Design.EditableKeyValue("Key2", "value2"));

            CustomMatchingRuleData ruleData = ruleNode.GetConfigurationData() as CustomMatchingRuleData;

            Assert.IsNotNull(ruleData);
            Assert.AreEqual(ruleNode.Name, ruleData.Name);
            Assert.AreEqual(ruleNode.Type, ruleData.TypeName);
            Assert.AreEqual(ruleNode.Attributes[0].Key, ruleData.Attributes.AllKeys[0]);
            Assert.AreEqual(ruleNode.Attributes[0].Value, ruleData.Attributes[0]);
            Assert.AreEqual(ruleNode.Attributes[1].Key, ruleData.Attributes.AllKeys[1]);
            Assert.AreEqual(ruleNode.Attributes[1].Value, ruleData.Attributes[1]);
        }
Beispiel #6
0
        public void CanCreateCustomMatchingRuleNodeFromData()
        {
            CustomMatchingRuleData ruleData = new CustomMatchingRuleData();

            ruleData.Name     = "CustomAttributeRuleName";
            ruleData.TypeName = "custom ruleType";
            ruleData.Attributes.Add("Attribute1", "Value1");
            ruleData.Attributes.Add("Attribute2", "Value2");

            CustomMatchingRuleNode ruleNode = new CustomMatchingRuleNode(ruleData);

            Assert.AreEqual(ruleData.Name, ruleNode.Name);
            Assert.AreEqual(ruleData.TypeName, ruleNode.Type);
            Assert.AreEqual(ruleData.Attributes.Count, ruleNode.Attributes.Count);
            Assert.AreEqual(ruleData.Attributes[0], ruleNode.Attributes[0].Value);
            Assert.AreEqual(ruleData.Attributes.AllKeys[0], ruleNode.Attributes[0].Key);
            Assert.AreEqual(ruleData.Attributes[1], ruleNode.Attributes[1].Value);
            Assert.AreEqual(ruleData.Attributes.AllKeys[1], ruleNode.Attributes[1].Key);
        }