public virtual void TestFilesOpenClose()
{
// Create initial data set
DirectoryInfo dirFile = CreateTempDir("TestIndexReader.testFilesOpenClose");
Directory dir = NewFSDirectory(dirFile);
IndexWriter writer = new IndexWriter(dir, NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random())));
AddDoc(writer, "test");
writer.Dispose();
dir.Dispose();
// Try to erase the data - this ensures that the writer closed all files
System.IO.Directory.Delete(dirFile.FullName, true);
dir = NewFSDirectory(dirFile);
// Now create the data set again, just as before
writer = new IndexWriter(dir, NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random())).SetOpenMode(OpenMode_e.CREATE));
AddDoc(writer, "test");
writer.Dispose();
dir.Dispose();
// Now open existing directory and test that reader closes all files
dir = NewFSDirectory(dirFile);
DirectoryReader reader1 = DirectoryReader.Open(dir);
reader1.Dispose();
dir.Dispose();
// The following will fail if reader did not close
// all files
System.IO.Directory.Delete(dirFile.FullName, true);
}