Inheritance: BsonDocument, IDisposable
Ejemplo n.º 1
0
        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"])); });
        }
Ejemplo n.º 6
0
 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;
     }
 }