public void AsXElementsConvertsUnderscoresToHyphens() { var obj = new { Separated_Name = "test" }; var map = obj.AsXElements().ToDictionary(attr => attr.Name); Assert.AreEqual(1, map.Count); Assert.AreEqual("test", map["Separated-Name"].Value); }
public void AsXElementsNullValuedPropertyBecomesEmptyElement() { var obj = new { NullProp = (string)null }; var list = obj.AsXElements().ToList(); Assert.AreEqual(1, list.Count); Assert.AreEqual("NullProp", list[0].Name.LocalName); Assert.IsTrue(list[0].IsEmpty); }
public void AsXElementsStringProperties() { var obj = new { StringProp1 = "foo", StringProp2 = "bar" }; var map = obj.AsXElements().ToDictionary(el => el.Name); Assert.AreEqual(2, map.Count); Assert.AreEqual("foo", map["StringProp1"].Value); Assert.AreEqual("bar", map["StringProp2"].Value); }
public void AsXElementsMixedProperties() { DateTime now = DateTime.Now; var obj = new { StringProp = "foo", DateTimeProp = now, Int32Prop = 32 }; var map = obj.AsXElements().ToDictionary(attr => attr.Name); Assert.AreEqual(3, map.Count); Assert.AreEqual("foo", map["StringProp"].Value); Assert.AreEqual(new XElement("x", now).Value, map["DateTimeProp"].Value); Assert.AreEqual("32", map["Int32Prop"].Value); }
public void AsXElementsNestedData() { var obj = new { StringProp = "foo", nestedElt = new XElement ("elt", "bar"), nestedAttr = new XAttribute("attr", "baz") }; var map = obj.AsXElements().ToDictionary(attr => attr.Name); Assert.AreEqual(3, map.Count); Assert.AreEqual("foo", map["StringProp"].Value); XElement nestedElt = map["nestedElt"]; Assert.AreEqual("elt", nestedElt.Elements().Single().Name.LocalName); Assert.AreEqual("bar", nestedElt.Elements().Single().Value); XElement nestedAttr = map["nestedAttr"]; Assert.AreEqual("attr", nestedAttr.Attributes().Single().Name.LocalName); Assert.AreEqual("baz", nestedAttr.Attributes().Single().Value); }