1 61 62 package org.jaxen.function; 63 64 import java.util.List ; 65 66 import javax.xml.parsers.DocumentBuilder ; 67 import javax.xml.parsers.DocumentBuilderFactory ; 68 import javax.xml.parsers.ParserConfigurationException ; 69 70 import junit.framework.TestCase; 71 72 import org.jaxen.JaxenException; 73 import org.jaxen.XPath; 74 import org.jaxen.dom.DOMXPath; 75 import org.w3c.dom.Document ; 76 77 81 public class NumberTest extends TestCase { 82 83 private Document doc; 84 85 public void setUp() throws ParserConfigurationException 86 { 87 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 88 factory.setNamespaceAware(true); 89 DocumentBuilder builder = factory.newDocumentBuilder(); 90 doc = builder.newDocument(); 91 } 92 93 94 public NumberTest(String name) { 95 super(name); 96 } 97 98 public void testNumberFunctionOperatesOnFirstNodeInDocumentOrder() 100 throws JaxenException { 101 102 XPath xpath = new DOMXPath("number(//x)"); 103 org.w3c.dom.Element a = doc.createElementNS("", "a"); 104 org.w3c.dom.Element b = doc.createElementNS("", "b"); 105 doc.appendChild(a); 106 a.appendChild(b); 107 org.w3c.dom.Element x2 = doc.createElementNS("", "x"); 108 org.w3c.dom.Element x3 = doc.createElementNS("", "x"); 109 org.w3c.dom.Element x4 = doc.createElementNS("", "x"); 110 a.appendChild(x4); 111 b.appendChild(x2); 112 b.appendChild(x3); 113 x2.appendChild(doc.createTextNode("2")); 114 x3.appendChild(doc.createTextNode("3")); 115 x4.appendChild(doc.createTextNode("4")); 116 117 List result = xpath.selectNodes(doc); 118 assertEquals(1, result.size()); 119 assertEquals(Double.valueOf("2.0"), result.get(0)); 120 121 } 122 123 public void testNumberFunctionOperatesOnContextNode() 124 throws JaxenException { 125 126 XPath xpath = new DOMXPath("number()"); 127 org.w3c.dom.Element a = doc.createElementNS("", "a"); 128 doc.appendChild(a); 129 a.appendChild(doc.createTextNode("2")); 130 131 Double result = (Double ) xpath.evaluate(doc); 132 assertEquals(2, result.intValue()); 133 134 } 135 136 } 137 | Popular Tags |