< prev index next >
test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java
Print this page
@@ -22,14 +22,19 @@
*/
package javax.xml.xpath.ptests;
import static javax.xml.xpath.XPathConstants.DOM_OBJECT_MODEL;
+
+import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
import javax.xml.xpath.XPathFactoryConfigurationException;
+
import jaxp.library.JAXPBaseTest;
-import static org.testng.AssertJUnit.assertNotNull;
+import static org.testng.Assert.assertNotNull;
+
+import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
/**
* Class containing the test cases for XPathFactory API.
*/
@@ -42,10 +47,66 @@
/**
* Invalid URL not able to create a XPath factory.
*/
private static final String INVALID_URL = "http://java.sun.com/jaxp/xpath/dom1";
+ private static final String URI = "http://java.sun.com/jaxp/xpath/dom";
+ private static final String XPATH_FACTORY_CLASSNAME = "com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl";
+
+ @DataProvider(name = "parameters")
+ public Object[][] getValidateParameters() {
+ return new Object[][] { { URI, XPATH_FACTORY_CLASSNAME, null }, { URI, XPATH_FACTORY_CLASSNAME, this.getClass().getClassLoader() } };
+ }
+
+ /*
+ * test for XPathFactory.newInstance(java.lang.String uri, java.lang.String
+ * factoryClassName, java.lang.ClassLoader classLoader) factoryClassName
+ * points to correct implementation of javax.xml.xpath.XPathFactory , should
+ * return newInstance of XPathFactory
+ */
+ @Test(dataProvider = "parameters")
+ public void testNewInstance(String uri, String factoryClassName, ClassLoader classLoader) throws XPathFactoryConfigurationException {
+ XPathFactory xpf = XPathFactory.newInstance(uri, factoryClassName, classLoader);
+ XPath xpath = xpf.newXPath();
+ assertNotNull(xpath);
+ }
+
+ @DataProvider(name = "invalid-parameters")
+ public Object[][] getInvalidateParameters() {
+ return new Object[][] { { URI, null, null }, { URI, null, this.getClass().getClassLoader() } };
+ }
+
+ /*
+ * test for XPathFactory.newInstance(java.lang.String uri, java.lang.String
+ * factoryClassName, java.lang.ClassLoader classLoader) factoryClassName is
+ * null , should throw XPathFactoryConfigurationException
+ */
+ @Test(expectedExceptions = XPathFactoryConfigurationException.class, dataProvider = "invalid-parameters")
+ public void testNewInstanceWithNullFactoryClassName(String uri, String factoryClassName, ClassLoader classLoader) throws XPathFactoryConfigurationException {
+ XPathFactory.newInstance(uri, factoryClassName, classLoader);
+ }
+
+ /*
+ * test for XPathFactory.newInstance(java.lang.String uri, java.lang.String
+ * factoryClassName, java.lang.ClassLoader classLoader) uri is null , should
+ * throw NPE
+ */
+ @Test(expectedExceptions = NullPointerException.class)
+ public void testNewInstanceWithNullUri() throws XPathFactoryConfigurationException {
+ XPathFactory.newInstance(null, XPATH_FACTORY_CLASSNAME, this.getClass().getClassLoader());
+ }
+
+ /*
+ * test for XPathFactory.newInstance(java.lang.String uri, java.lang.String
+ * factoryClassName, java.lang.ClassLoader classLoader) uri is empty, should
+ * throw IllegalArgumentException
+ */
+ @Test(expectedExceptions = IllegalArgumentException.class)
+ public void testNewInstanceWithEmptyUri() throws XPathFactoryConfigurationException {
+ XPathFactory.newInstance("", XPATH_FACTORY_CLASSNAME, this.getClass().getClassLoader());
+ }
+
/**
* Test for constructor - XPathFactory.newInstance().
*/
@Test
public void testCheckXPathFactory01() {
< prev index next >