" );
Assert.IsNotNull( node );
Assert.AreEqual( 3, node.ChildNodes.Count );
Assert.AreEqual( "poop", node.ChildNodes[0].Name );
Assert.AreEqual( "poop", node.ChildNodes[1].Name );
Assert.AreEqual( "poop", node.ChildNodes[2].Name );
}
[TestMethod]
public void ParseEmpty()
{
var node = Node.Parse( "" );
Assert.IsNotNull( node );
Assert.AreEqual( 0, node.ChildNodes.Count );
}
[TestMethod]
public void UnclosedChildren()
{
var node = Node.Parse( "" );
Assert.IsNotNull( node );
Assert.AreEqual( 1, node.ChildNodes.Count );
Assert.AreEqual( "surround", node.ChildNodes[0].Name );
Assert.AreEqual( 3, node.ChildNodes[0].ChildNodes.Count );
Assert.AreEqual( "one", node.ChildNodes[0].ChildNodes[0].Name );
Assert.AreEqual( "two", node.ChildNodes[0].ChildNodes[1].Name );
Assert.AreEqual( "three", node.ChildNodes[0].ChildNodes[2].Name );
}
[TestMethod]
public void EntsText()
{
var node = Node.Parse( "hello > hello" );
Assert.IsNotNull( node );
Assert.AreEqual( 1, node.ChildNodes.Count );
Assert.IsTrue( node.ChildNodes[0].IsText );
Assert.AreEqual( "hello > hello", node.ChildNodes[0].InnerHtml );
}
[TestMethod]
public void EntsAttribute()
{
var node = Node.Parse( "" );
Assert.IsNotNull( node );
Assert.AreEqual( 1, node.ChildNodes.Count );
Assert.IsTrue( node.ChildNodes[0].IsElement );
Assert.IsTrue( node.ChildNodes[0].HasAttributes );
Assert.AreEqual( 1, node.ChildNodes[0].Attributes.Count );
Assert.AreEqual( "test", node.ChildNodes[0].Attributes[0].Name );
Assert.AreEqual( "hello > hello", node.ChildNodes[0].Attributes[0].Value );
}
}