Clover Coverage Report
Coverage timestamp: Fri May 9 2008 10:54:27 EST
37   83   4   18.5
4   58   0.11   2
2     2  
1    
 
  TestIndexWriter       Line # 20 37 4 100% 1.0
 
  (1)
 
1    package org.apache.lucene.index;
2   
3    import java.io.IOException;
4   
5    import junit.framework.TestCase;
6   
7    import org.apache.lucene.analysis.WhitespaceAnalyzer;
8    import org.apache.lucene.document.Document;
9    import org.apache.lucene.document.Field;
10    import org.apache.lucene.index.IndexReader;
11    import org.apache.lucene.index.IndexWriter;
12    import org.apache.lucene.store.Directory;
13    import org.apache.lucene.store.RAMDirectory;
14   
15   
16    /**
17    * @author goller
18    * @version $Id: TestIndexWriter.java 418386 2006-06-30 21:46:29Z hossman $
19    */
 
20    public class TestIndexWriter extends TestCase
21    {
 
22  1 toggle public void testDocCount() throws IOException
23    {
24  1 Directory dir = new RAMDirectory();
25   
26  1 IndexWriter writer = null;
27  1 IndexReader reader = null;
28  1 int i;
29   
30  1 IndexWriter.setDefaultWriteLockTimeout(2000);
31  1 IndexWriter.setDefaultCommitLockTimeout(2000);
32  1 assertEquals(2000, IndexWriter.getDefaultWriteLockTimeout());
33  1 assertEquals(2000, IndexWriter.getDefaultCommitLockTimeout());
34   
35  1 writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true);
36   
37  1 IndexWriter.setDefaultWriteLockTimeout(1000);
38  1 IndexWriter.setDefaultCommitLockTimeout(1000);
39   
40    // add 100 documents
41  101 for (i = 0; i < 100; i++) {
42  100 addDoc(writer);
43    }
44  1 assertEquals(100, writer.docCount());
45  1 writer.close();
46   
47    // delete 40 documents
48  1 reader = IndexReader.open(dir);
49  41 for (i = 0; i < 40; i++) {
50  40 reader.deleteDocument(i);
51    }
52  1 reader.close();
53   
54    // test doc count before segments are merged/index is optimized
55  1 writer = new IndexWriter(dir, new WhitespaceAnalyzer(), false);
56  1 assertEquals(100, writer.docCount());
57  1 writer.close();
58   
59  1 reader = IndexReader.open(dir);
60  1 assertEquals(100, reader.maxDoc());
61  1 assertEquals(60, reader.numDocs());
62  1 reader.close();
63   
64    // optimize the index and check that the new doc count is correct
65  1 writer = new IndexWriter(dir, new WhitespaceAnalyzer(), false);
66  1 writer.optimize();
67  1 assertEquals(60, writer.docCount());
68  1 writer.close();
69   
70    // check that the index reader gives the same numbers.
71  1 reader = IndexReader.open(dir);
72  1 assertEquals(60, reader.maxDoc());
73  1 assertEquals(60, reader.numDocs());
74  1 reader.close();
75    }
76   
 
77  100 toggle private void addDoc(IndexWriter writer) throws IOException
78    {
79  100 Document doc = new Document();
80  100 doc.add(new Field("content", "aaa", Field.Store.NO, Field.Index.TOKENIZED));
81  100 writer.addDocument(doc);
82    }
83    }