pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.5.0 / lucene / contrib / demo / src / test / org / apache / lucene / demo / TestDemo.java
1 package org.apache.lucene.demo;
2
3 /**
4  * Licensed to the Apache Software Foundation (ASF) under one or more
5  * contributor license agreements.  See the NOTICE file distributed with
6  * this work for additional information regarding copyright ownership.
7  * The ASF licenses this file to You under the Apache License, Version 2.0
8  * (the "License"); you may not use this file except in compliance with
9  * the License.  You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19
20 import java.io.ByteArrayOutputStream;
21 import java.io.File;
22 import java.io.PrintStream;
23
24 import org.apache.lucene.util.LuceneTestCase;
25 import org.apache.lucene.util._TestUtil;
26
27 public class TestDemo extends LuceneTestCase {
28
29   private void testOneSearch(File indexPath, String query, int expectedHitCount) throws Exception {
30     PrintStream outSave = System.out;
31     try {
32       ByteArrayOutputStream bytes = new ByteArrayOutputStream();
33       PrintStream fakeSystemOut = new PrintStream(bytes);
34       System.setOut(fakeSystemOut);
35       SearchFiles.main(new String[] {"-query", query, "-index", indexPath.getPath()});
36       fakeSystemOut.flush();
37       String output = bytes.toString(); // intentionally use default encoding
38       assertTrue("output=" + output, output.contains(expectedHitCount + " total matching documents"));
39     } finally {
40       System.setOut(outSave);
41     }
42   }
43
44   public void testIndexSearch() throws Exception {
45     File dir = getDataFile("test-files/docs");
46     File indexDir = _TestUtil.getTempDir("ContribDemoTest");
47     IndexFiles.main(new String[] { "-create", "-docs", dir.getPath(), "-index", indexDir.getPath()});
48     testOneSearch(indexDir, "apache", 3);
49     testOneSearch(indexDir, "patent", 8);
50     testOneSearch(indexDir, "lucene", 0);
51     testOneSearch(indexDir, "gnu", 6);
52     testOneSearch(indexDir, "derivative", 8);
53     testOneSearch(indexDir, "license", 13);
54   }
55 }