public virtual void TestVersion()
{
Directory dir = new MockRAMDirectory();
Assert.IsFalse(IndexReader.IndexExists(dir));
IndexWriter writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED);
AddDocumentWithFields(writer);
Assert.IsTrue(IndexWriter.IsLocked(dir)); // writer open, so dir is locked
writer.Close();
Assert.IsTrue(IndexReader.IndexExists(dir));
IndexReader reader = IndexReader.Open(dir, false);
Assert.IsFalse(IndexWriter.IsLocked(dir)); // reader only, no lock
long version = IndexReader.GetCurrentVersion(dir);
reader.Close();
// modify index and check version has been
// incremented:
writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED);
AddDocumentWithFields(writer);
writer.Close();
reader = IndexReader.Open(dir, false);
Assert.IsTrue(version < IndexReader.GetCurrentVersion(dir), "old version is " + version + "; new version is " + IndexReader.GetCurrentVersion(dir));
reader.Close();
dir.Close();
}