XmlUtilTest: add more tests
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/5253d4b6 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/5253d4b6 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/5253d4b6 Branch: refs/heads/master Commit: 5253d4b67827482557bc93a771bdd9f2f5031ba5 Parents: cdb62f2 Author: Aled Sage <aled.s...@gmail.com> Authored: Tue Jul 19 23:05:42 2016 +0100 Committer: Ivana Yovcheva <ivana.yovch...@gmail.com> Committed: Wed Jul 20 12:18:48 2016 +0300 ---------------------------------------------------------------------- .../brooklyn/util/core/xstream/XmlUtilTest.java | 29 ++++++++++++++++++++ 1 file changed, 29 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/5253d4b6/core/src/test/java/org/apache/brooklyn/util/core/xstream/XmlUtilTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/brooklyn/util/core/xstream/XmlUtilTest.java b/core/src/test/java/org/apache/brooklyn/util/core/xstream/XmlUtilTest.java index 0b195b5..94ff2c8 100644 --- a/core/src/test/java/org/apache/brooklyn/util/core/xstream/XmlUtilTest.java +++ b/core/src/test/java/org/apache/brooklyn/util/core/xstream/XmlUtilTest.java @@ -24,14 +24,19 @@ import static org.testng.Assert.assertTrue; import java.util.List; +import javax.xml.xpath.XPathConstants; + import org.apache.brooklyn.util.core.xstream.XmlUtil.Escaper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.annotations.Test; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; import com.google.common.annotations.Beta; import com.google.common.base.Joiner; import com.google.common.base.Optional; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; public class XmlUtilTest { @@ -57,6 +62,30 @@ public class XmlUtilTest { } @Test + public void testXpathGetsNumber() throws Exception { + String xml = "<a><b>1</b></a>"; + assertEquals(XmlUtil.xpath(xml, "/a/b[text()]", XPathConstants.NUMBER), 1.0D); + } + + @Test + public void testXpathGetsBoolean() throws Exception { + String xml = "<a><b>true</b></a>"; + assertEquals(XmlUtil.xpath(xml, "/a/b[text()]", XPathConstants.BOOLEAN), Boolean.TRUE); + } + + @Test + public void testXpathGetsNodeSet() throws Exception { + String xml = "<a><b><string>v1</string><string>v2</string></b></a>"; + NodeList resultSet = (NodeList) XmlUtil.xpath(xml, "/a/b/string", XPathConstants.NODESET); + List<String> results = Lists.newArrayList(); + for (int i = 0; i < resultSet.getLength(); i++) { + Node item = resultSet.item(i); + results.add(item.getTextContent()); + } + assertEquals(results, ImmutableList.of("v1", "v2")); + } + + @Test public void testXpathWithEscapedCharsAndXmlVersion1_1() throws Exception { StringBuilder xml = new StringBuilder("<?xml version=\"1.1\" encoding=\"UTF-8\"?>"+"\n"+ "<a><b>myb</b><c>");