Author: natalia
Date: Tue Oct 16 17:37:44 2007
New Revision: 585301
URL: http://svn.apache.org/viewvc?rev=585301&view=rev
Log:
Failing tests for XPathQueryResolver
Modified:
xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/IndexedQueryTest.java
xml/xindice/trunk/java/tests/src/org/apache/xindice/integration/client/services/IndexedSearchTest.java
Modified:
xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/IndexedQueryTest.java
URL:
http://svn.apache.org/viewvc/xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/IndexedQueryTest.java?rev=585301&r1=585300&r2=585301&view=diff
==============================================================================
---
xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/IndexedQueryTest.java
(original)
+++
xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/IndexedQueryTest.java
Tue Oct 16 17:37:44 2007
@@ -95,6 +95,38 @@
assertEquals(9, count);
}
+ /**
+ * Tests specific case with more complex location path to check if
+ * XPathQueryResolver picks the correct index
+ * @throws Exception
+ */
+ public void testStartsWithQuery() throws Exception {
+ String config = "<index name='SpecialTest' " +
+ "
class='org.apache.xindice.core.indexer.ValueIndexer' " +
+ " pattern='[EMAIL PROTECTED]'/>";
+ collection.createIndexer(new
Configuration(DOMParser.toDocument(config)));
+
+ int iterations = 10;
+ for (int i = 0; i < iterations; i++) {
+ Document document = DOMParser.toDocument("<test num='" + (i + 1) +
"'>" +
+ "<test1 num='" + i +
"'/>" +
+ "This is a test
document</test>");
+ collection.insertDocument("key" + i, document);
+ }
+
+ assertTrue(collection.getFiler().getRecordCount() == iterations);
+
+ XPathQueryResolver service = new XPathQueryResolver();
+ NodeSet result = service.query(collection,
"//test1[starts-with(../@num, '8')]", null, null);
+ int count = 0;
+ while (result.hasMoreNodes()) {
+ result.getNextNode();
+ count++;
+ }
+
+ assertEquals(1, count);
+ }
+
public void testValueIndexer_StartsWithNestedContent() throws Exception {
collection.insertDocument("key1", DOMParser.toDocument("<test1>This
<i>is</i> a test</test1>"));
collection.insertDocument("key2", DOMParser.toDocument("<test2>This
<i>is</i> a test</test2>"));
Modified:
xml/xindice/trunk/java/tests/src/org/apache/xindice/integration/client/services/IndexedSearchTest.java
URL:
http://svn.apache.org/viewvc/xml/xindice/trunk/java/tests/src/org/apache/xindice/integration/client/services/IndexedSearchTest.java?rev=585301&r1=585300&r2=585301&view=diff
==============================================================================
---
xml/xindice/trunk/java/tests/src/org/apache/xindice/integration/client/services/IndexedSearchTest.java
(original)
+++
xml/xindice/trunk/java/tests/src/org/apache/xindice/integration/client/services/IndexedSearchTest.java
Tue Oct 16 17:37:44 2007
@@ -584,7 +584,44 @@
"WEWA", // index name
"Name", // index type
"[EMAIL PROTECTED]", // index pattern
- 0, // indexed query speedup expected
(conservative)
+ 6, // indexed query speedup expected
(conservative)
+ new String[] { // test docs specifically for this
test
+ "<?xml version='1.0'?>" +
+ "<person number3='yes'>" +
+ "<first surname='no' given='yes'>Sally</first>" +
+ "<last surname='yes'>aSm</last>" +
+ "<phone call='no' type='work'>555-345-6789</phone>" +
+ "<address>" +
+ "<street>" +
+ "<number given='no' />" +
+ "</street>" +
+ "</address>" +
+ "</person>"
+ },
+ 2, // expected result count
+ new Object[] { // expected resources to check for
(can be empty or partial set)
+ new Integer(0), "<first surname='no'
given='yes'>Sally</first>",
+ new Integer(0), "<number given='no' />"
+ });
+
+ aTest.runTest();
+ }
+
+ /**
+ * Tests the functionality of indexed searches on a Collection
+ * with a name index that has a pattern specifying a wildcard Element
+ * name and a wildcard Attribute name (e.g. "[EMAIL PROTECTED]"). This
kind of index
+ * is probably not useful.
+ */
+ public void testUnnamedElementWildAttributeNameIndexer() throws Exception {
+ // select nodes with an attribute named 'given'
+ IndexerTestDefinition aTest = new IndexerTestDefinition(
+ "testUnnamedElementWildAttributeNameIndexer", // description
+ "//node()[EMAIL PROTECTED]", // query
+ "WEWA", // index name
+ "Name", // index type
+ "[EMAIL PROTECTED]", // index pattern
+ 5, // indexed query speedup expected
(conservative)
new String[] { // test docs specifically for this
test
"<?xml version='1.0'?>" +
"<person number3='yes'>" +
@@ -704,6 +741,40 @@
1, // expected result count
new Object[] { // expected resources to check for
(can be empty or partial set)
new Integer(0), "<phone call='no'
type='work'>555-345-6789</phone>"
+ });
+
+ aTest.runTest();
+ }
+
+ /**
+ * Tests a starts-with search query for an attribute value that should be
resolvable using indexed searching
+ * on a value index. (index pattern like "[EMAIL PROTECTED]")
+ */
+ public void testSelfAxisValueIndexedStartsWithSearch()
+ throws Exception {
+ // search all records whose last name begins with 'Smi'
+ IndexerTestDefinition aTest = new IndexerTestDefinition(
+ "testSelfAxisValueIndexedStartsWithSearch", // description
+ "//phone/@call[starts-with(., 'n')]", // query
+ "SESA", // index name
+ "Value", // index type
+ "[EMAIL PROTECTED]", // index pattern
+ 6, // indexed query speedup expected
(conservative)
+ new String[] { // test docs specifically for this
test
+ "<?xml version='1.0'?>" +
+ "<person number3='yes'>" +
+ "<first surname='no' given='yes'>Sally</first>" +
+ "<last surname='yes'>aSm</last>" +
+ "<phone call='no' type='work'>555-345-6789</phone>" +
+ "<address> " +
+ "<street>" +
+ "<number given='no' />" +
+ "</street>" +
+ "</address>" +
+ "</person>"
+ },
+ 1, // expected result count
+ new Object[] { // expected resources to check for
(can be empty or partial set)
});
aTest.runTest();