public void TestArrayWithNestedEmptyArray() { var document = new BsonDocument(); using (var writer = new BsonDocumentWriter(document)) { writer.WriteStartDocument(); writer.WriteStartArray("a"); writer.WriteStartArray(); writer.WriteEndArray(); writer.WriteEndArray(); writer.WriteEndDocument(); } var json = document.ToJson(); var expected = "{ 'a' : [[]] }".Replace("'", "\""); Assert.Equal(expected, json); }
public static BsonArray SerializeValues(this ISerializationExpression field, IEnumerable values) { var tempDocument = new BsonDocument(); using (var bsonWriter = new BsonDocumentWriter(tempDocument)) { var context = BsonSerializationContext.CreateRoot(bsonWriter); bsonWriter.WriteStartDocument(); bsonWriter.WriteName("values"); bsonWriter.WriteStartArray(); foreach (var value in values) { field.Serializer.Serialize(context, value); } bsonWriter.WriteEndArray(); bsonWriter.WriteEndDocument(); return (BsonArray)tempDocument[0]; } }
public void TestArrayWithTwoNestedArrays() { var document = new BsonDocument(); using (var writer = new BsonDocumentWriter(document)) { writer.WriteStartDocument(); writer.WriteStartArray("a"); writer.WriteStartArray(); writer.WriteString("a"); writer.WriteString("b"); writer.WriteEndArray(); writer.WriteStartArray(); writer.WriteString("c"); writer.WriteStartDocument(); writer.WriteInt32("d", 9); writer.WriteEndDocument(); writer.WriteEndArray(); writer.WriteEndArray(); writer.WriteEndDocument(); } var json = document.ToJson(); var expected = "{ 'a' : [['a', 'b'], ['c', { 'd' : 9 }]] }".Replace("'", "\""); Assert.Equal(expected, json); }
public void TestTwoNestedEmptyArrays() { var document = new BsonDocument(); using (var writer = new BsonDocumentWriter(document)) { writer.WriteStartDocument(); writer.WriteStartDocument("nested"); writer.WriteStartArray("a"); writer.WriteEndArray(); writer.WriteStartArray("b"); writer.WriteEndArray(); writer.WriteEndDocument(); writer.WriteEndDocument(); } var json = document.ToJson(); var expected = "{ 'nested' : { 'a' : [], 'b' : [] } }".Replace("'", "\""); Assert.AreEqual(expected, json); }
public void TestArrayWithTwoElements() { var document = new BsonDocument(); using (var writer = new BsonDocumentWriter(document)) { writer.WriteStartDocument(); writer.WriteStartArray("a"); writer.WriteInt32(1); writer.WriteInt32(2); writer.WriteEndArray(); writer.WriteEndDocument(); } var json = document.ToJson(); var expected = "{ 'a' : [1, 2] }".Replace("'", "\""); Assert.AreEqual(expected, json); }
/// <summary> /// Serializes the values. /// </summary> /// <param name="values">The values.</param> /// <returns>The serialized values.</returns> public BsonArray SerializeValues(IEnumerable values) { var tempDocument = new BsonDocument(); using (var bsonWriter = new BsonDocumentWriter(tempDocument)) { var context = BsonSerializationContext.CreateRoot<BsonDocument>(bsonWriter); bsonWriter.WriteStartDocument(); bsonWriter.WriteName("values"); bsonWriter.WriteStartArray(); foreach (var value in values) { context.SerializeWithChildContext(_serializer, value); } bsonWriter.WriteEndArray(); bsonWriter.WriteEndDocument(); return tempDocument[0].AsBsonArray; } }