public virtual void TestUpdateAllDeletedSegment()
{
Directory dir = NewDirectory();
IndexWriterConfig conf = NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random()));
IndexWriter writer = new IndexWriter(dir, conf);
Document doc = new Document();
doc.Add(new StringField("id", "doc", Store.NO));
doc.Add(new BinaryDocValuesField("f1", ToBytes(1L)));
writer.AddDocument(doc);
writer.AddDocument(doc);
writer.Commit();
writer.DeleteDocuments(new Term("id", "doc")); // delete all docs in the first segment
writer.AddDocument(doc);
writer.UpdateBinaryDocValue(new Term("id", "doc"), "f1", ToBytes(2L));
writer.Dispose();
DirectoryReader reader = DirectoryReader.Open(dir);
Assert.AreEqual(1, reader.Leaves.Count);
Assert.AreEqual(2L, GetValue(((AtomicReader)reader.Leaves[0].Reader).GetBinaryDocValues("f1"), 0, new BytesRef()));
reader.Dispose();
dir.Dispose();
}