Lucene.Net.Index.TestBinaryDocValuesUpdates.TestChangeCodec C# (CSharp) Method

TestChangeCodec() private method

private TestChangeCodec ( ) : void
return void
        public virtual void TestChangeCodec()
        {
            Directory dir = NewDirectory();
            IndexWriterConfig conf = NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random()));
            conf.SetMergePolicy(NoMergePolicy.COMPOUND_FILES); // disable merges to simplify test assertions.
            conf.SetCodec(new Lucene46CodecAnonymousInnerClassHelper2(this));
            IndexWriter writer = new IndexWriter(dir, (IndexWriterConfig)conf.Clone());
            Document doc = new Document();
            doc.Add(new StringField("id", "d0", Store.NO));
            doc.Add(new BinaryDocValuesField("f1", ToBytes(5L)));
            doc.Add(new BinaryDocValuesField("f2", ToBytes(13L)));
            writer.AddDocument(doc);
            writer.Dispose();

            // change format
            conf.SetCodec(new Lucene46CodecAnonymousInnerClassHelper3(this));
            writer = new IndexWriter(dir, (IndexWriterConfig)conf.Clone());
            doc = new Document();
            doc.Add(new StringField("id", "d1", Store.NO));
            doc.Add(new BinaryDocValuesField("f1", ToBytes(17L)));
            doc.Add(new BinaryDocValuesField("f2", ToBytes(2L)));
            writer.AddDocument(doc);
            writer.UpdateBinaryDocValue(new Term("id", "d0"), "f1", ToBytes(12L));
            writer.Dispose();

            DirectoryReader reader = DirectoryReader.Open(dir);
            AtomicReader r = SlowCompositeReaderWrapper.Wrap(reader);
            BinaryDocValues f1 = r.GetBinaryDocValues("f1");
            BinaryDocValues f2 = r.GetBinaryDocValues("f2");
            BytesRef scratch = new BytesRef();
            Assert.AreEqual(12L, GetValue(f1, 0, scratch));
            Assert.AreEqual(13L, GetValue(f2, 0, scratch));
            Assert.AreEqual(17L, GetValue(f1, 1, scratch));
            Assert.AreEqual(2L, GetValue(f2, 1, scratch));
            reader.Dispose();
            dir.Dispose();
        }