1   package org.apache.lucene.index;
2   
3   import junit.framework.TestCase;
4   import org.apache.lucene.analysis.standard.StandardAnalyzer;
5   import org.apache.lucene.document.Document;
6   import org.apache.lucene.document.Field;
7   import org.apache.lucene.store.RAMDirectory;
8   
9   import java.io.IOException;
10  import java.util.Vector;
11  
12  public class TestIndexUtils extends TestCase
13  {
14      public void testTruncateIndex() throws IOException
15      {
16          RAMDirectory dir = new RAMDirectory();
17          IndexWriter writer = new IndexWriter(dir, new StandardAnalyzer(), true);
18          writer.setUseCompoundFile(true);
19          writer.setMaxBufferedDocs(2);
20          writer.addDocument(createDocument());
21          writer.addDocument(createDocument());
22          writer.addDocument(createDocument());
23          writer.addDocument(createDocument());
24          writer.close();
25  
26          Vector deleteable = IndexUtils.readDeleteableFiles(dir);
27          assertEquals(0, deleteable.size());
28  
29          SegmentInfos infos = new SegmentInfos();
30          infos.read(dir);
31          assertEquals(2, infos.size());
32  
33          IndexUtils.truncateIndex(dir);
34          infos.clear();
35          infos.read(dir);
36          assertEquals(0, infos.size());
37  
38          deleteable = IndexUtils.readDeleteableFiles(dir);
39          assertEquals(2, deleteable.size());
40      }
41  
42      private Document createDocument()
43      {
44          Document d = new Document();
45          d.add(new Field("foo", "bar", Field.Store.YES, Field.Index.TOKENIZED));
46          return d;
47      }
48  }