private RawBsonDocument DeserializeRawBsonDocument(IBsonReader bsonReader) { var slice = bsonReader.ReadRawBsonDocument(); var nestedDocument = new RawBsonDocument(slice); _disposableItems.Add(nestedDocument); return(nestedDocument); }
public void DeserializeBatch_should_return_expected_result_when_batch_is_empty() { var document = BsonDocument.Parse("{ batch : [ ] }"); var bson = document.ToBson(); var rawDocument = new RawBsonDocument(bson); var batch = (RawBsonArray)rawDocument["batch"]; var documentSerializer = BsonDocumentSerializer.Instance; var messageEncoderSettings = new MessageEncoderSettings(); var result = CursorBatchDeserializationHelper.DeserializeBatch<BsonDocument>(batch, documentSerializer, messageEncoderSettings); result.Count.Should().Be(0); }
public void DeserializeBatch_should_return_expected_result_when_GuidRepresentation_is_Standard() { var document = BsonDocument.Parse("{ batch : [ { a : HexData(4, \"0102030405060708090a0b0c0d0e0f10\") } ] }"); var writerSettings = new BsonBinaryWriterSettings { GuidRepresentation = GuidRepresentation.Standard }; var bson = document.ToBson(writerSettings: writerSettings); var rawDocument = new RawBsonDocument(bson); var batch = (RawBsonArray)rawDocument["batch"]; var documentSerializer = BsonDocumentSerializer.Instance; var messageEncoderSettings = new MessageEncoderSettings { { "GuidRepresentation", GuidRepresentation.Standard } }; var result = CursorBatchDeserializationHelper.DeserializeBatch<BsonDocument>(batch, documentSerializer, messageEncoderSettings); result.Count.Should().Be(1); result[0].Should().BeOfType<BsonDocument>(); result[0].Should().Be("{ a : HexData(4, \"0102030405060708090a0b0c0d0e0f10\") }"); }
private RawBsonDocument DeserializeRawBsonDocument(IBsonReader bsonReader) { var slice = bsonReader.ReadRawBsonDocument(); var nestedDocument = new RawBsonDocument(slice); _disposableItems.Add(nestedDocument); return nestedDocument; }
public void TestStrictRead() { var settings = new MongoCollectionSettings { ReadEncoding = new UTF8Encoding(false, true) }; var collection = _database.GetCollection(Configuration.TestCollection.Name, settings); var document = new BsonDocument { { "_id", ObjectId.GenerateNewId() }, { "x", "abc" } }; var bson = document.ToBson(); bson[28] = 0xc0; // replace 'a' with invalid lone first code point (not followed by 10xxxxxx) // use a RawBsonDocument to sneak the invalid bytes into the database var rawBsonDocument = new RawBsonDocument(bson); collection.Insert(rawBsonDocument); Assert.Throws<DecoderFallbackException>(() => { var rehydrated = collection.FindOne(Query.EQ("_id", document["_id"])); }); }
public RawDictionary(RawBsonDocument value) : base(value) { }
public void TestLenientRead() { var settings = new MongoCollectionSettings { ReadEncoding = Utf8Encodings.Lenient }; var collection = _database.GetCollection(LegacyTestConfiguration.Collection.Name, settings); var document = new BsonDocument { { "_id", ObjectId.GenerateNewId() }, { "x", "abc" } }; var bson = document.ToBson(); bson[28] = 0xc0; // replace 'a' with invalid lone first code point (not followed by 10xxxxxx) // use a RawBsonDocument to sneak the invalid bytes into the database var rawBsonDocument = new RawBsonDocument(bson); collection.Insert(rawBsonDocument); var rehydrated = collection.FindOne(Query.EQ("_id", document["_id"])); Assert.AreEqual("\ufffd" + "bc", rehydrated["x"].AsString); }
public void Dispose() { if (D != null) { D.Dispose(); D = null; } }