Lucene.Net.Index.TestIndexWriterReader.TestAddCloseOpen C# (CSharp) Метод

TestAddCloseOpen() приватный Метод

private TestAddCloseOpen ( ) : void
Результат void
        public virtual void TestAddCloseOpen()
        {
            // Can't use assertNoDeletes: this test pulls a non-NRT
            // reader in the end:
            Directory dir1 = NewDirectory();
            IndexWriterConfig iwc = NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random()));

            IndexWriter writer = new IndexWriter(dir1, iwc);
            for (int i = 0; i < 97; i++)
            {
                DirectoryReader reader = writer.Reader;
                if (i == 0)
                {
                    writer.AddDocument(DocHelper.CreateDocument(i, "x", 1 + Random().Next(5)));
                }
                else
                {
                    int previous = Random().Next(i);
                    // a check if the reader is current here could fail since there might be
                    // merges going on.
                    switch (Random().Next(5))
                    {
                        case 0:
                        case 1:
                        case 2:
                            writer.AddDocument(DocHelper.CreateDocument(i, "x", 1 + Random().Next(5)));
                            break;

                        case 3:
                            writer.UpdateDocument(new Term("id", "" + previous), DocHelper.CreateDocument(previous, "x", 1 + Random().Next(5)));
                            break;

                        case 4:
                            writer.DeleteDocuments(new Term("id", "" + previous));
                            break;
                    }
                }
                Assert.IsFalse(reader.Current);
                reader.Dispose();
            }
            writer.ForceMerge(1); // make sure all merging is done etc.
            DirectoryReader dirReader = writer.Reader;
            writer.Commit(); // no changes that are not visible to the reader
            Assert.IsTrue(dirReader.Current);
            writer.Dispose();
            Assert.IsTrue(dirReader.Current); // all changes are visible to the reader
            iwc = NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random()));
            writer = new IndexWriter(dir1, iwc);
            Assert.IsTrue(dirReader.Current);
            writer.AddDocument(DocHelper.CreateDocument(1, "x", 1 + Random().Next(5)));
            Assert.IsTrue(dirReader.Current); // segments in ram but IW is different to the readers one
            writer.Dispose();
            Assert.IsFalse(dirReader.Current); // segments written
            dirReader.Dispose();
            dir1.Dispose();
        }