public virtual void TestSimple()
{
Directory dir = NewDirectory();
IndexWriterConfig conf = NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random()));
// make sure random config doesn't flush on us
conf.SetMaxBufferedDocs(10);
conf.SetRAMBufferSizeMB(IndexWriterConfig.DISABLE_AUTO_FLUSH);
IndexWriter writer = new IndexWriter(dir, conf);
writer.AddDocument(Doc(0)); // val=1
writer.AddDocument(Doc(1)); // val=2
if (Random().NextBoolean()) // randomly commit before the update is sent
{
writer.Commit();
}
writer.UpdateBinaryDocValue(new Term("id", "doc-0"), "val", ToBytes(2)); // doc=0, exp=2
DirectoryReader reader;
if (Random().NextBoolean()) // not NRT
{
writer.Dispose();
reader = DirectoryReader.Open(dir);
} // NRT
else
{
reader = DirectoryReader.Open(writer, true);
writer.Dispose();
}
Assert.AreEqual(1, reader.Leaves.Count);
AtomicReader r = (AtomicReader)reader.Leaves[0].Reader;
BinaryDocValues bdv = r.GetBinaryDocValues("val");
BytesRef scratch = new BytesRef();
Assert.AreEqual(2, GetValue(bdv, 0, scratch));
Assert.AreEqual(2, GetValue(bdv, 1, scratch));
reader.Dispose();
dir.Dispose();
}