public void TestWithDatabase()
{
var id = ObjectId.GenerateNewId();
var dbRef = new MongoDBRef("database", "collection", ObjectId.GenerateNewId());
var obj = new C { Id = id, DBRef = dbRef };
var json = obj.ToJson();
var expected = "{ '_id' : ObjectId('#id'), 'DBRef' : { '$ref' : 'collection', '$id' : ObjectId('#ref'), '$db' : 'database' } }";
expected = expected.Replace("#id", id.ToString());
expected = expected.Replace("#ref", dbRef.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()));
}
}