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();