public void TestDocumentRefId()
{
var id = ObjectId.GenerateNewId();
var refId = new BsonDocument { { "x", 1 }, { "y", 2 } };
var dbRef = new MongoDBRef("collection", refId);
var obj = new C { Id = id, DBRef = dbRef };
var json = obj.ToJson();
var expected = "{ '_id' : ObjectId('#id'), 'DBRef' : { '$ref' : 'collection', '$id' : { 'x' : 1, 'y' : 2 } } }";
expected = expected.Replace("#id", id.ToString());
expected = expected.Replace("'", "\"");
Assert.AreEqual(expected, json);
var bson = obj.ToBson();
var rehydrated = BsonSerializer.Deserialize<C>(bson);
Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson()));
}