Author: natalia
Date: Fri Oct 19 17:35:10 2007
New Revision: 586648

URL: http://svn.apache.org/viewvc?rev=586648&view=rev
Log:
Tests for the new full text search XPath function

Modified:
    
xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/XPathQueryResolverTest.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/XPathQueryResolverTest.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/XPathQueryResolverTest.java?rev=586648&r1=586647&r2=586648&view=diff
==============================================================================
--- 
xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/XPathQueryResolverTest.java
 (original)
+++ 
xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/XPathQueryResolverTest.java
 Fri Oct 19 17:35:10 2007
@@ -238,6 +238,21 @@
                assertNotNull("Complex query didn't return a node", node);
        }
 
+    public void testFullTextXPathQuery() throws Exception {
+        Object node = null;
+        XPathQueryResolver queryResolv = new XPathQueryResolver();
+        NodeSet nodeSet =
+            queryResolv.query(
+                col,
+                
"/terrainmap/coordinates//node()[ftcontains('text')]/latitude/text()",
+                null,
+                null);
+        if (nodeSet.hasMoreNodes()) {
+            node = nodeSet.getNextNode();
+        }
+        assertNotNull("Full text query didn't return a node", node);
+    }
+
     public void tearDown() throws Exception {
         if (--tests == 0) {
             db.dropCollection(col);

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=586648&r1=586647&r2=586648&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
 Fri Oct 19 17:35:10 2007
@@ -316,10 +316,19 @@
          */
         public void createIndex() throws Exception {
             if (!itsIndexCreated) {
-                client.createIndexer(COLLECTION_PATH,
-                                     "<?xml version='1.0'?><index name='" + 
itsTestIndexName + "' " +
-                                     "class='org.apache.xindice.core.indexer." 
+ itsTestIndexType + "Indexer' " +
-                                     "pattern='" + itsTestIndexPattern + "' 
/>");
+                String config;
+                if ("Lucene".equals(itsTestIndexType)) {
+                    config = "<?xml version='1.0'?><index name='" + 
itsTestIndexName + "' " +
+                             "class='org.apache.xindice.core.indexer." + 
itsTestIndexType + "Indexer'>" +
+                             "<pattern pattern='" + itsTestIndexPattern + "' 
alias=\"field\"/>" +
+                             "</index>";
+                } else {
+                    config = "<?xml version='1.0'?><index name='" + 
itsTestIndexName + "' " +
+                             "class='org.apache.xindice.core.indexer." + 
itsTestIndexType + "Indexer' " +
+                             "pattern='" + itsTestIndexPattern + "' />";
+                }
+                
+                client.createIndexer(COLLECTION_PATH, config);
                 itsIndexCreated = true;
 
                 // Wait for the indexer to do the background indexing
@@ -874,6 +883,54 @@
                                             "<number given='no' />" +
                                         "</street>" +
                                     "</address>"
+                });
+
+        aTest.runTest();
+    }
+
+    /**
+     * Tests an full text search query for an Element value that should be 
resolvable using
+     * indexed searching on a text index.
+     */
+    public void testSpecificElementNoAttributeTextIndexedSearch() throws 
Exception {
+        // search all records whose address is empty
+        IndexerTestDefinition aTest = new IndexerTestDefinition(
+                "testSpecificElementNoAttributeTextIndexedSearch", // 
description
+                "//person[info[ftcontains('text')]]/[EMAIL PROTECTED] = 
'yes']",   // query
+                "SENA",                   // index name
+                "Lucene",                 // index type
+                "info",                // index pattern
+                8,                        // 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'>Smith</last>" +
+                        "<phone call='no' type='work'>555-345-6789</phone>" +
+                        "<address>" +
+                            "<street>" +
+                                "<number given='no' />" +
+                            "</street>" +
+                        "</address>" +
+                        "<info>test test another test</info>" +
+                    "</person>",
+
+                    "<?xml version='1.0'?>" +
+                    "<person number3='yes'>" +
+                        "<first surname='no' given='yes'>Sally</first>" +
+                        "<last surname='yes'>Smithers</last>" +
+                        "<phone call='no' type='work'>555-345-6789</phone>" +
+                        "<address>" +
+                            "<street>" +
+                                "<number given='no' />Main St" +
+                            "</street>" +
+                        "</address>" +
+                        "<info>test test some more text</info>" +
+                    "</person>"
+                },
+                1,                        // expected result count
+                new Object[] {            // expected resources to check for 
(can be empty or partial set)
+                    new Integer(1), "<last surname='yes'>Smithers</last>"
                 });
 
         aTest.runTest();


Reply via email to