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.BaseXPath; 73 import org.jaxen.FunctionCallException; 74 import org.jaxen.JaxenException; 75 import org.jaxen.dom.DOMXPath; 76 import org.w3c.dom.Document ; 77 78 82 public class NotTest extends TestCase { 83 84 private Document doc; 85 86 public void setUp() throws ParserConfigurationException 87 { 88 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 89 factory.setNamespaceAware(true); 90 DocumentBuilder builder = factory.newDocumentBuilder(); 91 doc = builder.newDocument(); 92 doc.appendChild(doc.createElement("root")); 93 } 94 95 96 public NotTest(String name) { 97 super(name); 98 } 99 100 public void testZeroIsFalse() 101 throws JaxenException { 102 103 BaseXPath xpath = new DOMXPath("not(0)"); 104 105 List result = xpath.selectNodes(doc); 106 assertEquals(1, result.size()); 107 assertEquals(Boolean.TRUE, result.get(0)); 108 109 } 110 111 public void testOneIsTrue() 112 throws JaxenException { 113 114 BaseXPath xpath = new DOMXPath("not(1)"); 115 116 List result = xpath.selectNodes(doc); 117 assertEquals(1, result.size()); 118 assertEquals(Boolean.FALSE, result.get(0)); 119 120 } 121 122 public void testEmptyStringIsFalse() 123 throws JaxenException { 124 125 BaseXPath xpath = new DOMXPath("not('')"); 126 127 List result = xpath.selectNodes(doc); 128 assertEquals(1, result.size()); 129 assertEquals(Boolean.TRUE, result.get(0)); 130 131 } 132 133 public void testNaNIsFalse() 134 throws JaxenException { 135 136 BaseXPath xpath = new DOMXPath("not(0 div 0)"); 137 Object result = xpath.evaluate(null); 138 assertEquals(Boolean.TRUE, result); 139 140 } 141 142 public void testNonEmptyStringIsTrue() 143 throws JaxenException { 144 145 BaseXPath xpath = new DOMXPath("not('false')"); 146 147 List result = xpath.selectNodes(doc); 148 assertEquals(1, result.size()); 149 assertEquals(Boolean.FALSE, result.get(0)); 150 151 } 152 153 public void testNotFunctionRequiresOneArgument() 154 throws JaxenException { 155 156 BaseXPath xpath = new DOMXPath("not()"); 157 158 try { 159 xpath.selectNodes(doc); 160 fail("Allowed not() function with no arguments"); 161 } 162 catch (FunctionCallException ex) { 163 assertNotNull(ex.getMessage()); 164 } 165 166 } 167 168 public void testNotFunctionRequiresExactlyOneArgument() 169 throws JaxenException { 170 171 BaseXPath xpath = new DOMXPath("not('', '')"); 172 173 try { 174 xpath.selectNodes(doc); 175 fail("Allowed not() function with two arguments"); 176 } 177 catch (FunctionCallException ex) { 178 assertNotNull(ex.getMessage()); 179 } 180 181 } 182 183 } 184 | Popular Tags |