svn commit: r584478 - in /xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/ftsearch: ./ SearcherTest.java

[email protected]
Newsgroups gmane.text.xml.xindice.devel
Message-ID <[email protected]>
Author: natalia
Date: Sat Oct 13 19:47:06 2007
New Revision: 584478

URL: http://svn.apache.org/viewvc?rev=584478&view=rev
Log:
Test for full text search on DOM nodes

Added:
    xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/ftsearch/
    xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/ftsearch/SearcherTest.java   (with props)

Added: xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/ftsearch/SearcherTest.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/ftsearch/SearcherTest.java?rev=584478&view=auto
==============================================================================
--- xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/ftsearch/SearcherTest.java (added)
+++ xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/ftsearch/SearcherTest.java Sat Oct 13 19:47:06 2007
@@ -0,0 +1,190 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Id$
+ */
+
+package org.apache.xindice.core.query.ftsearch;
+
+import junit.framework.TestCase;
+import org.w3c.dom.Document;
+import org.w3c.dom.NodeList;
+import org.apache.xindice.xml.dom.DOMParser;
+import org.apache.xindice.core.data.NodeSet;
+import org.apache.lucene.analysis.SimpleAnalyzer;
+
+/**
+ * Tests for full text search on DOM nodes
+ *  
+ * @version $Revision$, $Date$
+ * 
+ */
+public class SearcherTest extends TestCase {
+    String str = "<?xml version=\"1.0\"?>\n" +
+                 "<doc>" +
+                 "    <chapter>" +
+                 "        <title>Chapter</title>\n" +
+                 "        <content>" +
+                 "            Invokes the underlying method represented by this Method object, on the specified \n" +
+                 "            object with the specified parameters. Individual parameters are automatically \n" +
+                 "            unwrapped to match primitive formal parameters, and both primitive and reference \n" +
+                 "            parameters are subject to method invocation conversions as necessary.\n" +
+                 "        </content>\n" +
+                 "        <title>Paragraph</title>\n" +
+                 "        <content>" +
+                 "            If the underlying method is an instance method, it is invoked using dynamic method \n" +
+                 "            lookup as documented in The Java Language Specification, Second Edition, section \n" +
+                 "            15.12.4.4; in particular, overriding based on the runtime type of the target object \n" +
+                 "            will occur.        \n" +
+                 "        </content>\n" +
+                 "        <title>Part</title>\n" +
+                 "        <content>" +
+                 "            If the method completes normally, the value it returns is returned to the caller of \n" +
+                 "            invoke; if the value has a primitive type, it is first appropriately wrapped in an \n" +
+                 "            object. If the underlying method return type is void, the invocation returns null.\n" +
+                 "        </content>" +
+                 "    </chapter>" +
+                 "</doc>";
+    Document doc;
+    NodeList list;
+    public void setUp() throws Exception {
+        doc = DOMParser.toDocument(str);
+        list = doc.getDocumentElement().getElementsByTagName("content");
+    }
+
+    public void testTermQuery() throws Exception {
+        Searcher searcher = new Searcher(list, new SimpleAnalyzer());
+        NodeSet res = searcher.search("underlying");
+
+        int count = 0;
+        while (res.hasMoreNodes()) {
+            count++;
+            res.getNextNode();
+        }
+        assertTrue(count == 3);
+    }
+
+    public void testBooleanQuery() throws Exception {
+        Searcher searcher = new Searcher(list, new SimpleAnalyzer());
+        NodeSet res = searcher.search("underlying AND automatically");
+
+        int count = 0;
+        while (res.hasMoreNodes()) {
+            count++;
+            res.getNextNode();
+        }
+        assertTrue(count == 1);
+    }
+
+    public void testPhraseQuery() throws Exception {
+        Searcher searcher = new Searcher(list, new SimpleAnalyzer());
+        NodeSet res = searcher.search("\"underlying method\"");
+
+        int count = 0;
+        while (res.hasMoreNodes()) {
+            count++;
+            res.getNextNode();
+        }
+        assertTrue(count == 2);
+    }
+
+    public void testWildcardQuery1() throws Exception {
+        Searcher searcher = new Searcher(list, new SimpleAnalyzer());
+        NodeSet res = searcher.search("invoke?");
+
+        int count = 0;
+        while (res.hasMoreNodes()) {
+            count++;
+            res.getNextNode();
+        }
+        assertTrue(count == 2);
+    }
+
+    public void testWildcardQuery2() throws Exception {
+        Searcher searcher = new Searcher(list, new SimpleAnalyzer());
+        NodeSet res = searcher.search("invoke*");
+
+        int count = 0;
+        while (res.hasMoreNodes()) {
+            count++;
+            res.getNextNode();
+        }
+        assertTrue(count == 3);
+    }
+
+    public void testWildcardQuery3() throws Exception {
+        Searcher searcher = new Searcher(list, new SimpleAnalyzer());
+        NodeSet res = searcher.search("test*");
+
+        int count = 0;
+        while (res.hasMoreNodes()) {
+            count++;
+            res.getNextNode();
+        }
+        assertTrue(count == 0);
+    }
+
+    public void testWildcardQuery4() throws Exception {
+        Searcher searcher = new Searcher(list, new SimpleAnalyzer());
+        NodeSet res = searcher.search("s*d"); // matches "second" and "specified"
+
+        int count = 0;
+        while (res.hasMoreNodes()) {
+            count++;
+            res.getNextNode();
+        }
+        assertTrue(count == 2);
+    }
+
+    public void testProximityQuery() throws Exception {
+        Searcher searcher = new Searcher(list, new SimpleAnalyzer());
+        NodeSet res = searcher.search("\"java edition\"~5");
+
+        int count = 0;
+        while (res.hasMoreNodes()) {
+            count++;
+            res.getNextNode();
+        }
+        assertTrue(count == 1);
+    }
+
+    public void testFuzzyQuery() throws Exception {
+        Searcher searcher = new Searcher(list, new SimpleAnalyzer());
+        NodeSet res = searcher.search("on~0.2"); // matches "on" and "in"
+
+        int count = 0;
+        while (res.hasMoreNodes()) {
+            count++;
+            res.getNextNode();
+        }
+        assertTrue(count == 3);
+    }
+
+    public void testRangeQuery() throws Exception {
+        doc = DOMParser.toDocument(str);
+        list = doc.getDocumentElement().getElementsByTagName("title");
+
+        Searcher searcher = new Searcher(list, new SimpleAnalyzer());
+        NodeSet res = searcher.search("{chapter TO part}");
+
+        int count = 0;
+        while (res.hasMoreNodes()) {
+            count++;
+            res.getNextNode();
+        }
+        assertTrue(count == 1);
+    }
+}

Propchange: xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/ftsearch/SearcherTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xml/xindice/trunk/java/tests/src/org/apache/xindice/core/query/ftsearch/SearcherTest.java
------------------------------------------------------------------------------
    svn:keywords = Id Revision Author Date
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.