public void MergeEmptyChild() { ManagedNameValueCollection parent = new ManagedNameValueCollection(); parent.Add("one", "one"); parent.Add("two", "two"); ManagedNameValueCollection child = new ManagedNameValueCollection(); child.MergeEnabled = true; NameValueCollection mergedMap = (NameValueCollection)child.Merge(parent); Assert.AreEqual(2, mergedMap.Count); }
public void MergeSunnyDay() { ManagedNameValueCollection parent = new ManagedNameValueCollection(); parent.Add("one", "one"); parent.Add("two", "two"); ManagedNameValueCollection child = new ManagedNameValueCollection(); child.Add("three", "three"); child.MergeEnabled = true; NameValueCollection mergedList = (NameValueCollection)child.Merge(parent); Assert.AreEqual(3, mergedList.Count); }
/// <summary> /// Gets a name value collection mapping definition. /// </summary> /// <param name="nameValueEle"> /// The element describing the name value collection mapping definition. /// </param> /// <param name="name"> /// The name of the object (definition) associated with the /// name value collection mapping definition. /// </param> /// <param name="parserContext">the context carrying parsing state information</param> /// <returns>The name value collection definition.</returns> protected NameValueCollection ParseNameValueCollectionElement(XmlElement nameValueEle, string name, ParserContext parserContext) { ManagedNameValueCollection nvc = new ManagedNameValueCollection(); nvc.MergeEnabled = ParseMergeAttribute(nameValueEle, parserContext.ParserHelper); XmlNodeList addElements = nameValueEle.GetElementsByTagName(ObjectDefinitionConstants.AddElement); foreach (XmlElement addElement in addElements) { string key = GetAttributeValue(addElement, ObjectDefinitionConstants.KeyAttribute); string value = GetAttributeValue(addElement, ObjectDefinitionConstants.ValueAttribute); string delimiters = GetAttributeValue(addElement, ObjectDefinitionConstants.DelimitersAttribute); if (StringUtils.HasText(delimiters)) { string[] values = value.Split(delimiters.ToCharArray()); foreach (string v in values) { nvc.Add(key, v); } } else { nvc.Add(key, value); } } return nvc; }
public void MergeChildValueOverrideTheParents() { ManagedNameValueCollection parent = new ManagedNameValueCollection(); parent.Add("one", "one"); parent.Add("two", "two"); ManagedNameValueCollection child = new ManagedNameValueCollection(); child.Add("one", "fork"); child.MergeEnabled = true; NameValueCollection mergedMap = (NameValueCollection)child.Merge(parent); Assert.AreEqual(2, mergedMap.Count); Assert.AreEqual("fork", mergedMap["one"]); }