/// <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])); } }
/// <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); }
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]); }
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); }