public virtual void TestForceCommit()
{
Directory dir = NewDirectory();
IndexWriter writer = new IndexWriter(dir, NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random())).SetMaxBufferedDocs(2).SetMergePolicy(NewLogMergePolicy(5)));
writer.Commit();
for (int i = 0; i < 23; i++)
{
TestIndexWriter.AddDoc(writer);
}
DirectoryReader reader = DirectoryReader.Open(dir);
Assert.AreEqual(0, reader.NumDocs);
writer.Commit();
DirectoryReader reader2 = DirectoryReader.OpenIfChanged(reader);
Assert.IsNotNull(reader2);
Assert.AreEqual(0, reader.NumDocs);
Assert.AreEqual(23, reader2.NumDocs);
reader.Dispose();
for (int i = 0; i < 17; i++)
{
TestIndexWriter.AddDoc(writer);
}
Assert.AreEqual(23, reader2.NumDocs);
reader2.Dispose();
reader = DirectoryReader.Open(dir);
Assert.AreEqual(23, reader.NumDocs);
reader.Dispose();
writer.Commit();
reader = DirectoryReader.Open(dir);
Assert.AreEqual(40, reader.NumDocs);
reader.Dispose();
writer.Dispose();
dir.Dispose();
}