kevinoneill 2003/08/05 22:49:50
Modified: java/tests/src/org/apache/xindice/integration/client/services
XPathQueryTest.java
Log:
PR: 22155, 22156
Added tests that expose issues in the handling of non element result types
for queries.
Revision Changes Path
1.7 +122 -6
xml-xindice/java/tests/src/org/apache/xindice/integration/client/services/XPathQueryTest.java
Index: XPathQueryTest.java
===================================================================
RCS file:
/home/cvs/xml-xindice/java/tests/src/org/apache/xindice/integration/client/services/XPathQueryTest.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- XPathQueryTest.java 4 Aug 2003 23:56:36 -0000 1.6
+++ XPathQueryTest.java 6 Aug 2003 05:49:50 -0000 1.7
@@ -67,6 +67,7 @@
import org.xmldb.api.base.Collection;
import org.xmldb.api.base.ResourceIterator;
import org.xmldb.api.base.ResourceSet;
+import org.xmldb.api.base.XMLDBException;
import org.xmldb.api.modules.XMLResource;
import org.xmldb.api.modules.XPathQueryService;
@@ -76,6 +77,7 @@
/**
* @version $Revision$, $Date$
* @author Vladimir R. Bossicard <[EMAIL PROTECTED]>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Kevin O'Neill</a>
*/
public class XPathQueryTest
extends AbstractXmlDbClientTest {
@@ -254,10 +256,8 @@
XPathQueryService xpathservice = (XPathQueryService)
col.getService("XPathQueryService", "1.0");
ResourceSet resultSet = xpathservice.query(query);
- ResourceIterator results = resultSet.getIterator();
-
- List res = asList(results);
- assertEquals(1, res.size());
+ assertEquals(1L, resultSet.getSize());
+ assertEquals("John", resultSet.getResource(0).getContent());
}
public void testGetMultipleTextNodes() throws Exception
@@ -310,7 +310,123 @@
this.client.removeDocument(TEST_COLLECTION_PATH, "doc3");
}
+ public void testFetchMultipleAttributeNode() throws Exception
+ {
+ String document3 = "<?xml version=\"1.0\"?>" +
+ "<foo bar='foo'>" +
+ "<bar foo='bar' bar='bar'/>" +
+ "</foo>";
+
+ client.insertDocument(TEST_COLLECTION_PATH, "doc3", document3);
+
+ String query = "//@bar";
+
+ Collection col = this.client.getCollection(TEST_COLLECTION_PATH);
+ XPathQueryService xpathservice = (XPathQueryService)
col.getService("XPathQueryService", "1.0");
+
+ ResourceSet resultSet = null;
+ try
+ {
+ resultSet = xpathservice.query(query);
+ }
+ catch (Exception e)
+ {
+ fail(e.getMessage());
+ }
+
+ ResourceIterator results = resultSet.getIterator();
+ List res = asList(results);
+ assertEquals(2, res.size());
+
+ XMLResource resource = (XMLResource) resultSet.getResource(0);
+
+ Node node = resource.getContentAsDOM();
+
+ client.removeDocument(TEST_COLLECTION_PATH, "doc3");
+ }
+ public void testFetchAttributeNode() throws Exception
+ {
+ String document3 = "<?xml version=\"1.0\"?>" +
+ "<foo bar='foo'>" +
+ "<bar foo='bar' bar='bar'/>" +
+ "</foo>";
+
+ client.insertDocument(TEST_COLLECTION_PATH, "doc3", document3);
+
+ String query = "//foo/@bar";
+
+ Collection col = this.client.getCollection(TEST_COLLECTION_PATH);
+ XPathQueryService xpathservice = (XPathQueryService)
col.getService("XPathQueryService", "1.0");
+
+ ResourceSet resultSet = null;
+ try
+ {
+ resultSet = xpathservice.query(query);
+ }
+ catch (Exception e)
+ {
+ fail(e.getMessage());
+ }
+
+ assertEquals(1L, resultSet.getSize());
+ assertEquals("foo",
resultSet.getResource(0).getContent().toString());
+ }
+
+ public void testFetchBoolean() throws Exception
+ {
+ String query = "boolean(//person)";
+
+ Collection col = client.getCollection(TEST_COLLECTION_PATH);
+ XPathQueryService xpathservice = (XPathQueryService)
col.getService("XPathQueryService", "1.0");
+ try {
+ ResourceSet resultSet = xpathservice.query(query);
+
+ // when we do support it the following tests will be run
+ assertEquals(1L, resultSet.getSize());
+ assertEquals("true", resultSet.getResource(1L).getContent());
+
+ } catch (XMLDBException e) {
+ fail(e.getMessage());
+ }
+ }
+
+ public void testFetchString() throws Exception
+ {
+ String query = "string(//person[first='John' and
last='Smith']/first)";
+
+ Collection col = client.getCollection(TEST_COLLECTION_PATH);
+ XPathQueryService xpathservice = (XPathQueryService)
col.getService("XPathQueryService", "1.0");
+ try {
+ ResourceSet resultSet = xpathservice.query(query);
+
+ // when we do support it the following tests will be run
+ assertEquals(1L, resultSet.getSize());
+ assertEquals("John", resultSet.getResource(1L).getContent());
+
+ } catch (XMLDBException e) {
+ fail(e.getMessage());
+ }
+ }
+
+ public void testFetchNumber() throws Exception
+ {
+ String query = "count(//person[first='John' and last='Smith'])";
+
+ Collection col = client.getCollection(TEST_COLLECTION_PATH);
+ XPathQueryService xpathservice = (XPathQueryService)
col.getService("XPathQueryService", "1.0");
+ try {
+ ResourceSet resultSet = xpathservice.query(query);
+
+ // when we do support it the following tests will be run
+ assertEquals(1L, resultSet.getSize());
+ assertEquals("1", resultSet.getResource(1L).getContent());
+
+ } catch (XMLDBException e) {
+ fail(e.getMessage());
+ }
+ }
+
public void testSrcAddedToRootOnly() throws Exception
{
String query = "//person[first='John' and last='Smith']";