Clover Coverage Report
Coverage timestamp: Fri May 9 2008 10:54:27 EST
98   209   22   8.91
20   148   0.22   11
11     2  
1    
 
  TestSegmentReader       Line # 31 98 22 99.2% 0.99224806
 
  (9)
 
1    package org.apache.lucene.index;
2   
3    /**
4    * Copyright 2004 The Apache Software Foundation
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10    * http://www.apache.org/licenses/LICENSE-2.0
11    *
12    * Unless required by applicable law or agreed to in writing, software
13    * distributed under the License is distributed on an "AS IS" BASIS,
14    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15    * See the License for the specific language governing permissions and
16    * limitations under the License.
17    */
18   
19    import java.io.IOException;
20    import java.util.Collection;
21    import java.util.Iterator;
22    import java.util.List;
23   
24    import junit.framework.TestCase;
25   
26    import org.apache.lucene.document.Document;
27    import org.apache.lucene.document.Fieldable;
28    import org.apache.lucene.search.DefaultSimilarity;
29    import org.apache.lucene.store.RAMDirectory;
30   
 
31    public class TestSegmentReader extends TestCase {
32    private RAMDirectory dir = new RAMDirectory();
33    private Document testDoc = new Document();
34    private SegmentReader reader = null;
35   
 
36  7 toggle public TestSegmentReader(String s) {
37  7 super(s);
38    }
39   
40    //TODO: Setup the reader w/ multiple documents
 
41  7 toggle protected void setUp() throws IOException {
42  7 DocHelper.setupDoc(testDoc);
43  7 DocHelper.writeDoc(dir, testDoc);
44  7 reader = SegmentReader.get(new SegmentInfo("test", 1, dir));
45    }
46   
 
47  7 toggle protected void tearDown() {
48   
49    }
50   
 
51  1 toggle public void test() {
52  1 assertTrue(dir != null);
53  1 assertTrue(reader != null);
54  1 assertTrue(DocHelper.nameValues.size() > 0);
55  1 assertTrue(DocHelper.numFields(testDoc) == DocHelper.all.size());
56    }
57   
 
58  1 toggle public void testDocument() throws IOException {
59  1 assertTrue(reader.numDocs() == 1);
60  1 assertTrue(reader.maxDoc() >= 1);
61  1 Document result = reader.document(0);
62  1 assertTrue(result != null);
63    //There are 2 unstored fields on the document that are not preserved across writing
64  1 assertTrue(DocHelper.numFields(result) == DocHelper.numFields(testDoc) - DocHelper.unstored.size());
65   
66  1 List fields = result.getFields();
67  13 for (Iterator iter = fields.iterator(); iter.hasNext();) {
68  12 Fieldable field = (Fieldable) iter.next();
69  12 assertTrue(field != null);
70  12 assertTrue(DocHelper.nameValues.containsKey(field.name()));
71    }
72    }
73   
 
74  1 toggle public void testDelete() throws IOException {
75  1 Document docToDelete = new Document();
76  1 DocHelper.setupDoc(docToDelete);
77  1 DocHelper.writeDoc(dir, "seg-to-delete", docToDelete);
78  1 SegmentReader deleteReader = SegmentReader.get(new SegmentInfo("seg-to-delete", 1, dir));
79  1 assertTrue(deleteReader != null);
80  1 assertTrue(deleteReader.numDocs() == 1);
81  1 deleteReader.deleteDocument(0);
82  1 assertTrue(deleteReader.isDeleted(0) == true);
83  1 assertTrue(deleteReader.hasDeletions() == true);
84  1 assertTrue(deleteReader.numDocs() == 0);
85  1 try {
86  1 deleteReader.document(0);
87  0 fail();
88    } catch (IllegalArgumentException e) {
89    // expcected exception
90    }
91    }
92   
 
93  1 toggle public void testGetFieldNameVariations() {
94  1 Collection result = reader.getFieldNames(IndexReader.FieldOption.ALL);
95  1 assertTrue(result != null);
96  1 assertTrue(result.size() == DocHelper.all.size());
97  15 for (Iterator iter = result.iterator(); iter.hasNext();) {
98  14 String s = (String) iter.next();
99    //System.out.println("Name: " + s);
100  14 assertTrue(DocHelper.nameValues.containsKey(s) == true || s.equals(""));
101    }
102  1 result = reader.getFieldNames(IndexReader.FieldOption.INDEXED);
103  1 assertTrue(result != null);
104  1 assertTrue(result.size() == DocHelper.indexed.size());
105  13 for (Iterator iter = result.iterator(); iter.hasNext();) {
106  12 String s = (String) iter.next();
107  12 assertTrue(DocHelper.indexed.containsKey(s) == true || s.equals(""));
108    }
109   
110  1 result = reader.getFieldNames(IndexReader.FieldOption.UNINDEXED);
111  1 assertTrue(result != null);
112  1 assertTrue(result.size() == DocHelper.unindexed.size());
113    //Get all indexed fields that are storing term vectors
114  1 result = reader.getFieldNames(IndexReader.FieldOption.INDEXED_WITH_TERMVECTOR);
115  1 assertTrue(result != null);
116  1 assertTrue(result.size() == DocHelper.termvector.size());
117   
118  1 result = reader.getFieldNames(IndexReader.FieldOption.INDEXED_NO_TERMVECTOR);
119  1 assertTrue(result != null);
120  1 assertTrue(result.size() == DocHelper.notermvector.size());
121    }
122   
 
123  1 toggle public void testTerms() throws IOException {
124  1 TermEnum terms = reader.terms();
125  1 assertTrue(terms != null);
126  39 while (terms.next() == true)
127    {
128  38 Term term = terms.term();
129  38 assertTrue(term != null);
130    //System.out.println("Term: " + term);
131  38 String fieldValue = (String)DocHelper.nameValues.get(term.field());
132  38 assertTrue(fieldValue.indexOf(term.text()) != -1);
133    }
134   
135  1 TermDocs termDocs = reader.termDocs();
136  1 assertTrue(termDocs != null);
137  1 termDocs.seek(new Term(DocHelper.TEXT_FIELD_1_KEY, "field"));
138  1 assertTrue(termDocs.next() == true);</