public void TestTwoJavaScriptWithScopes() { var document = new BsonDocument(); using (var writer = new BsonDocumentWriter(document)) { writer.WriteStartDocument(); writer.WriteJavaScriptWithScope("a", "x"); writer.WriteStartDocument(); writer.WriteInt32("x", 1); writer.WriteEndDocument(); writer.WriteJavaScriptWithScope("b", "y"); writer.WriteStartDocument(); writer.WriteInt32("y", 2); writer.WriteEndDocument(); writer.WriteEndDocument(); } var json = document.ToJson(); var expected = "{ 'a' : { '$code' : 'x', '$scope' : { 'x' : 1 } }, 'b' : { '$code' : 'y', '$scope' : { 'y' : 2 } } }".Replace("'", "\""); ; Assert.Equal(expected, json); }