Lucene.Net.Index.TestIndexReader.TestFieldCacheReuseAfterReopen C# (CSharp) Method

TestFieldCacheReuseAfterReopen() private method

private TestFieldCacheReuseAfterReopen ( ) : void
return void
		public virtual void  TestFieldCacheReuseAfterReopen()
		{
			Directory dir = new MockRAMDirectory();
			IndexWriter writer = new IndexWriter(dir, new WhitespaceAnalyzer(), IndexWriter.MaxFieldLength.UNLIMITED);
			Document doc = new Document();
			doc.Add(new Field("number", "17", Field.Store.NO, Field.Index.NOT_ANALYZED));
			writer.AddDocument(doc);
			writer.Commit();
			
			// Open reader1
			IndexReader r = IndexReader.Open(dir, false);
			IndexReader r1 = SegmentReader.GetOnlySegmentReader(r);
			int[] ints = Lucene.Net.Search.FieldCache_Fields.DEFAULT.GetInts(r1, "number");
			Assert.AreEqual(1, ints.Length);
			Assert.AreEqual(17, ints[0]);
			
			// Add new segment
			writer.AddDocument(doc);
			writer.Commit();
			
			// Reopen reader1 --> reader2
			IndexReader r2 = r.Reopen();
			r.Close();
			IndexReader sub0 = r2.GetSequentialSubReaders()[0];
			int[] ints2 = Lucene.Net.Search.FieldCache_Fields.DEFAULT.GetInts(sub0, "number");
			r2.Close();
			Assert.IsTrue(ints == ints2);
			
			dir.Close();
		}