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

TestFieldCacheReuseAfterClone() private method

private TestFieldCacheReuseAfterClone ( ) : void
return void
		public virtual void  TestFieldCacheReuseAfterClone()
		{
			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.Close();
			
			// Open reader
			IndexReader r = SegmentReader.GetOnlySegmentReader(dir);
			int[] ints = Lucene.Net.Search.FieldCache_Fields.DEFAULT.GetInts(r, "number");
			Assert.AreEqual(1, ints.Length);
			Assert.AreEqual(17, ints[0]);
			
			// Clone reader
			IndexReader r2 = (IndexReader) r.Clone();
			r.Close();
			Assert.IsTrue(r2 != r);
			int[] ints2 = Lucene.Net.Search.FieldCache_Fields.DEFAULT.GetInts(r2, "number");
			r2.Close();
			
			Assert.AreEqual(1, ints2.Length);
			Assert.AreEqual(17, ints2[0]);
			Assert.IsTrue(ints == ints2);
			
			dir.Close();
		}