XmlDataTests ClassDelta Engine Documentation
Inheritance Hierarchy

System Object
  DeltaEngine.Content.Xml.Tests XmlDataTests

Namespace: DeltaEngine.Content.Xml.Tests
Assembly: DeltaEngine.Content.Xml.Tests (in DeltaEngine.Content.Xml.Tests.dll) Version: 1.1.1.0 (1.1.1)
Syntax

public class XmlDataTests

The XmlDataTests type exposes the following members.

Constructors

  NameDescription
Public methodXmlDataTests
Initializes a new instance of the XmlDataTests class
Top
Methods

  NameDescription
Public methodAddAttributeChar
Public methodAddAttributeDouble
Public methodAddAttributeFloat
Public methodAddAttributeObject
Public methodAddChildViaNameAndValueWillOnlyAddTheValueIfNotNull
Public methodClearAttributes
Public methodConstructor
Public methodGetAttributes
Public methodGetAttributesAsDictionary
Public methodGetAttributeValue
Public methodGetAttributeValueAsInteger
Public methodGetChild
Public methodGetChildren
Public methodGetDefaultChildren
Public methodGetDescendant
Public methodGetDescendantValue
Public methodGetDescendantWithAttribute
Public methodGetDescendantWithAttributeAndName
Public methodGetDescendantWithAttributes
Public methodGetDescendantWithAttributesAndName
Public methodGetTotalNodeCount
Public methodInvalidName
Public methodRemove
Public methodRemoveAttribute
Public methodRemoveChild
Public methodToStringProperty
Public methodToXmlString
Public methodUpdateExistingAttribute
Public methodUpdateExistingAttributeWithSameValue
Public methodUpdateNonExistingAttribute
Public methodValue
Top
Examples

[Test]
public void Constructor()
{
    var root = new XmlData("name");
    Assert.AreEqual("name", root.Name);
    Assert.AreEqual(0, root.Children.Count);
    Assert.AreEqual(0, root.Attributes.Count);
}
[Test]
public void InvalidName()
{
    Assert.Throws<XmlData.InvalidXmlNameException>(() => new XmlData(null));
    Assert.Throws<XmlData.InvalidXmlNameException>(() => new XmlData("Hello World"));
}
[Test]
public void GetChild()
{
    var root = new XmlData("root");
    root.AddChild(new XmlData("child1"));
    var child2 = new XmlData("child2");
    root.AddChild(child2);
    Assert.AreEqual(child2, root.GetChild("child2"));
}
[Test]
public void GetChildren()
{
    var root = new XmlData("root");
    var child1 = new XmlData("child");
    root.AddChild(child1);
    root.AddChild(new XmlData("stepchild"));
    var child2 = new XmlData("child");
    root.AddChild(child2);
    var children = root.GetChildren("child");
    Assert.AreEqual(2, children.Count);
    Assert.IsTrue(children.Contains(child1));
    Assert.IsTrue(children.Contains(child2));
}
[Test]
public void GetDescendant()
{
    XmlData root = CreateDeepTestXmlData();
    Assert.AreEqual(root.Children[1], root.GetDescendant(root.Children[1].Name));
    Assert.AreEqual(root.Children[1].Children[0], root.GetDescendant("grandchild"));
    Assert.AreEqual(null, root.GetDescendant("unknown"));
}
[Test]
public void AddChildViaNameAndValueWillOnlyAddTheValueIfNotNull()
{
    var node = new XmlData("Root");
    Assert.IsNull(node.AddChild("Child").Value);
    Assert.IsNull(node.AddChild("Child", null).Value);
    Assert.IsEmpty(node.AddChild("Child", "").Value);
    Assert.AreEqual(4.ToString(), node.AddChild("Child", 4).Value);
}
[Test]
public void GetDescendantWithAttribute()
{
    XmlData root = CreateDeepTestXmlData();
    Assert.AreEqual(root.Children[0], root.GetDescendant(new XmlAttribute("Attr1", "Value1")));
    Assert.AreEqual(root.Children[1].Children[0],
        root.GetDescendant(new XmlAttribute("Attr5", "Value5")));
    Assert.AreEqual(null, root.GetDescendant(new XmlAttribute("Attr5", "Value6")));
    Assert.AreEqual(null, root.GetDescendant(new XmlAttribute("Attr6", "Value5")));
}
[Test]
public void GetDescendantWithAttributeAndName()
{
    XmlData root = CreateDeepTestXmlData();
    Assert.AreEqual(root.Children[0],
        root.GetDescendant(new XmlAttribute("Attr1", "Value1"), root.Children[0].Name));
    Assert.AreEqual(null,
        root.GetDescendant(new XmlAttribute("Attr1", "Value1"), root.Children[1].Name));
}
[Test]
public void GetDescendantWithAttributes()
{
    XmlData root = CreateDeepTestXmlData();
    var attributes = new List<XmlAttribute>
    {
        new XmlAttribute("Attr1", "Value1"),
        new XmlAttribute("Attr2", "Value2")
    };
    Assert.AreEqual(root.Children[0], root.GetDescendant(attributes));
    Assert.AreEqual(root.Children[1].Children[0],
        root.GetDescendant(new List<XmlAttribute> { new XmlAttribute("Attr5", "Value5") }));
    attributes.Add(new XmlAttribute("Attr3", "Value3"));
    Assert.AreEqual(null, root.GetDescendant(attributes));
}
[Test]
public void GetDescendantWithAttributesAndName()
{
    XmlData root = CreateDeepTestXmlData();
    var attributes = new List<XmlAttribute>
    {
        new XmlAttribute("Attr1", "Value1"),
        new XmlAttribute("Attr2", "Value2")
    };
    Assert.AreEqual(root.Children[0], root.GetDescendant(attributes, "child1"));
    Assert.AreEqual(null, root.GetDescendant(attributes, "child2"));
    Assert.AreEqual(root.Children[1].Children[0],
        root.GetDescendant(new List<XmlAttribute> { new XmlAttribute("Attr5", "Value5") }),
        "child5");
}
[Test]
public void GetAttributesAsDictionary()
{
    XmlData root = CreateDeepTestXmlData();
    var dict = root.Children[0].GetAttributesAsDictionary();
    Assert.AreEqual(2, dict.Count);
    Assert.AreEqual("Value1", dict["Attr1"]);
    Assert.AreEqual("Value2", dict["Attr2"]);
}
[Test]
public void GetTotalNodeCount()
{
    Assert.AreEqual(3, CreateShallowTestXmlData().GetTotalNodeCount());
    Assert.AreEqual(4, CreateDeepTestXmlData().GetTotalNodeCount());
}
[Test]
public void Remove()
{
    XmlData root = CreateDeepTestXmlData();
    root.Children[0].Remove();
    Assert.AreEqual(3, root.GetTotalNodeCount());
    root.Children[0].Remove();
    Assert.AreEqual(1, root.GetTotalNodeCount());
}
[Test]
public void RemoveChild()
{
    XmlData root = CreateDeepTestXmlData();
    Assert.IsTrue(root.RemoveChild(root.Children[0]));
    Assert.IsFalse(root.RemoveChild(new XmlData("unknown")));
}
[Test]
public void AddAttributeObject()
{
    var root = new XmlData("root");
    root.AddAttribute("attribute", DayOfWeek.Friday);
    Assert.AreEqual(1, root.Attributes.Count);
    Assert.AreEqual(new XmlAttribute("attribute", "Friday"), root.Attributes[0]);
}
[Test]
public void AddAttributeChar()
{
    var root = new XmlData("root");
    root.AddAttribute("attribute", 'a');
    Assert.AreEqual(1, root.Attributes.Count);
    Assert.AreEqual(new XmlAttribute("attribute", 'a'), root.Attributes[0]);
}
[Test]
public void AddAttributeFloat()
{
    var root = new XmlData("root");
    root.AddAttribute("attribute", 1.2f);
    Assert.AreEqual(1, root.Attributes.Count);
    Assert.AreEqual(new XmlAttribute("attribute", 1.2f), root.Attributes[0]);
}
[Test]
public void AddAttributeDouble()
{
    var root = new XmlData("root");
    root.AddAttribute("attribute", 1.2);
    Assert.AreEqual(1, root.Attributes.Count);
    Assert.AreEqual(new XmlAttribute("attribute", 1.2), root.Attributes[0]);
}
[Test]
public void RemoveAttribute()
{
    var root = new XmlData("root");
    root.AddAttribute("attribute1", "value1");
    root.AddAttribute("attribute2", "value2");
    root.AddAttribute("attribute1", "value3");
    root.RemoveAttribute("attribute1");
    Assert.AreEqual(1, root.Attributes.Count);
    root.RemoveAttribute("attribute3");
    Assert.AreEqual(1, root.Attributes.Count);
}
[Test]
public void ClearAttributes()
{
    XmlData root = CreateShallowTestXmlData();
    XmlData child = root.Children[0];
    Assert.AreEqual(2, child.Attributes.Count);
    child.ClearAttributes();
    Assert.AreEqual(0, child.Attributes.Count);
}
[Test]
public void Value()
{
    var root = new XmlData("root") { Value = "value" };
    Assert.AreEqual("value", root.Value);
}
[Test]
public void GetDescendantValue()
{
    XmlData root = CreateDeepTestXmlData();
    Assert.AreEqual("Value5", root.GetDescendantValue("Attr5"));
    Assert.AreEqual("", root.GetDescendantValue("Attr6"));
}
[Test]
public void GetAttributes()
{
    XmlData root = CreateShallowTestXmlData();
    List<XmlAttribute> attributes = root.Children[0].Attributes;
    Assert.AreEqual(2, attributes.Count);
    Assert.AreEqual("Value1", attributes[0].Value);
    Assert.AreEqual("Value2", attributes[1].Value);
}
[Test]
public void GetAttributeValue()
{
    var root = new XmlData("root");
    root.AddAttribute("attribute", "value");
    Assert.AreEqual("value", root.GetAttributeValue("attribute"));
    Assert.AreEqual("", root.GetAttributeValue("attribute2"));
}
[Test]
public void GetAttributeValueAsInteger()
{
    var root = new XmlData("root");
    root.AddAttribute("number", "123");
    Assert.AreEqual(123, root.GetAttributeValue("number", 0));
    Assert.AreEqual("", root.GetAttributeValue("nonexistant", ""));
}
[Test]
public void UpdateExistingAttribute()
{
    var root = new XmlData("root");
    root.AddAttribute("number", "123");
    root.UpdateAttribute("number", "312");
    Assert.AreEqual("312", root.GetAttributeValue("number"));
}
[Test]
public void UpdateNonExistingAttribute()
{
    var root = new XmlData("root");
    root.UpdateAttribute("number", "312");
    Assert.AreEqual("312", root.GetAttributeValue("number"));
}
[Test]
public void UpdateExistingAttributeWithSameValue()
{
    var root = new XmlData("root");
    root.AddAttribute("number", "123");
    root.UpdateAttribute("number", "123");
    Assert.AreEqual("123", root.GetAttributeValue("number"));
}
[Test]
public void GetDefaultChildren()
{
    var root = new XmlData("root");
    var child1 = new XmlData("Child1") { Value = "testValue" };
    root.AddChild(child1);
    Assert.AreEqual(child1.Value, root.GetChildValue("Child1", root.Value));
    Assert.AreEqual(root.Value, root.GetChildValue("default", root.Value));
}
[Test]
public void ToStringProperty()
{
    var root = CreateShallowTestXmlData();
    Assert.AreEqual(@"<Child1 Attr1=""Value1"" Attr2=""Value2"">Tom</Child1>",
        root.Children[0].ToString());
}
[Test]
public void ToXmlString()
{
    XmlData root = CreateDeepTestXmlData();
    Assert.AreEqual(Root, root.ToString());
}
See Also