public void SelectElements_WithInvalidPath_ThrowsXPathException()
        {
            string xml =
                @"<testElement>1234</testElement>";

            string path = "[[[";

            XMLElement element = new XMLElement(XElement.Parse(xml));

            Assert.Throws <XPathException>(() => element.SelectElements(path));
        }
        public void SelectElements_WithAValidPathCorrespondingToOneElement_ReturnsASetWithOneElement()
        {
            string xml =
                @"<testElement>123</testElement>";
            string path = "/";

            XMLElement element = new XMLElement(XElement.Parse(xml));

            var actual = element.SelectElements(path);

            Assert.That(actual, Has.Count.EqualTo(1));
        }
        public void SelectElements_WithAValidPathCorrespondingToNoElements_ReturnsAnEmptySet()
        {
            string xml =
                @"<testElement>123</testElement>";
            string path = "notAnElement";

            XMLElement element = new XMLElement(XElement.Parse(xml));

            var actual = element.SelectElements(path);

            Assert.That(actual, Is.Empty);
        }
        public void SelectElements_WithAValidPathCorrespondingToTwoElements_ReturnsASetWithTwoElements()
        {
            string xml =
                @"<root>
    <testElement>1234</testElement>
    <testElement>45789</testElement>
</root>";

            string path = "/testElement";

            XMLElement element = new XMLElement(XElement.Parse(xml));

            var actual = element.SelectElements(path);

            Assert.That(actual, Has.Count.EqualTo(2));
        }