public void Extensions_ConsumeElementOfDepth_AtLesserDepthTakesNoAction() { using (XmlReader xml = s_consumeElementOfDepthTestDocument.CreateReader()) { xml.ConsumeElementOfDepth(1); // Already at endElementDepth 0, should have no effect Assert.Equal(ReadState.Initial, xml.ReadState); } }
public void Extensions_ConsumeElementOfDepth_ConsumesElementWithChildren() { using (XmlReader xml = s_consumeElementOfDepthTestDocument.CreateReader()) { Assert.True(xml.ReadToDescendant("nodes_child")); xml.ConsumeElementOfDepth(1); Assert.Equal(XmlNodeType.Element, xml.NodeType); Assert.Equal("deep_child", xml.LocalName); } }
public void Extensions_ConsumeElementOfDepth_ConsumesEmptyElement() { using (XmlReader xml = s_consumeElementOfDepthTestDocument.CreateReader()) { Assert.True(xml.ReadToDescendant("empty_child")); Assert.True(xml.IsEmptyElement); xml.ConsumeElementOfDepth(1); Assert.Equal("content_child", xml.LocalName); } }
public void Extensions_ConsumeElementOfDepth_ConsumesWhenAlreadyInsideElement() { using (XmlReader xml = s_consumeElementOfDepthTestDocument.CreateReader()) { Assert.True(xml.ReadToDescendant("nodes_child")); Assert.True(xml.ReadToDescendant("node")); xml.Read(); Assert.Equal(XmlNodeType.Text, xml.NodeType); // node content xml.ConsumeElementOfDepth(1); Assert.Equal(XmlNodeType.Element, xml.NodeType); Assert.Equal("deep_child", xml.LocalName); } }
public void Extensions_ConsumeElementOfDepth_ConsumesEndElement() { using (XmlReader xml = s_consumeElementOfDepthTestDocument.CreateReader()) { Assert.True(xml.ReadToDescendant("nodes_child")); Assert.True(xml.ReadToDescendant("node")); Assert.True(xml.Read()); // node content Assert.True(xml.Read()); // </node> -- This test is that we consume the end element when we're standing on it Assert.Equal(XmlNodeType.EndElement, xml.NodeType); xml.ConsumeElementOfDepth(2); Assert.Equal(XmlNodeType.Element, xml.NodeType); Assert.Equal("deep_child", xml.LocalName); } }