Exemplo n.º 1
0
        public void Serialize_should_have_expected_result(
            ChangeStreamOperationType operationType,
            string resumeTokenJson,
            string databaseName,
            string collectionName,
            string documentKeyJson,
            string updateDescriptionJson,
            string fullDocumentJson,
            string expectedJson)
        {
            var subject = CreateSubject();
            var value   = new ChangeStreamDocument <BsonDocument>(
                ParseBsonDocument(resumeTokenJson),
                operationType,
                CreateCollectionNamespace(databaseName, collectionName),
                ParseBsonDocument(documentKeyJson),
                ParseUpdateDescription(updateDescriptionJson),
                ParseBsonDocument(fullDocumentJson));

            string json;

            using (var textWriter = new StringWriter())
                using (var writer = new JsonWriter(textWriter))
                {
                    var context = BsonSerializationContext.CreateRoot(writer);
                    subject.Serialize(context, value);
                    json = textWriter.ToString();
                }

            json.Should().Be(expectedJson);
        }
Exemplo n.º 2
0
        public void constructor_should_initialize_instance()
        {
            var backingDocument    = new BsonDocument();
            var documentSerializer = Mock.Of <IBsonSerializer <BsonDocument> >();

            var result = new ChangeStreamDocument <BsonDocument>(backingDocument, documentSerializer);

            result.BackingDocument.Should().BeSameAs(backingDocument);
            var changeStreamDocumentSerializer = result._serializer().Should().BeOfType <ChangeStreamDocumentSerializer <BsonDocument> >().Subject;

            changeStreamDocumentSerializer._documentSerializer().Should().BeSameAs(documentSerializer);
        }
Exemplo n.º 3
0
        public void Serialize_should_have_expected_result_when_value_is_null()
        {
            var subject = CreateSubject();
            ChangeStreamDocument <BsonDocument> value = null;

            string json;

            using (var textWriter = new StringWriter())
                using (var writer = new JsonWriter(textWriter))
                {
                    var context = BsonSerializationContext.CreateRoot(writer);
                    subject.Serialize(context, value);
                    json = textWriter.ToString();
                }

            json.Should().Be("null");
        }
        public void Serialize_should_have_expected_result()
        {
            var subject         = CreateSubject();
            var backingDocument = BsonDocument.Parse("{ x : 1 }");
            var value           = new ChangeStreamDocument <BsonDocument>(backingDocument, BsonDocumentSerializer.Instance);

            string json;

            using (var textWriter = new StringWriter())
                using (var writer = new JsonWriter(textWriter))
                {
                    var context = BsonSerializationContext.CreateRoot(writer);
                    subject.Serialize(context, value);
                    json = textWriter.ToString();
                }

            json.Should().Be("{ \"x\" : 1 }");
        }
Exemplo n.º 5
0
        /// <inheritdoc />
        protected override void SerializeValue(BsonSerializationContext context, BsonSerializationArgs args, ChangeStreamDocument <TDocument> value)
        {
            var writer = context.Writer;

            writer.WriteStartDocument();
            writer.WriteName("_id");
            BsonDocumentSerializer.Instance.Serialize(context, value.ResumeToken);
            writer.WriteName("operationType");
            __operationTypeSerializer.Serialize(context, value.OperationType);
            if (value.CollectionNamespace != null)
            {
                writer.WriteName("ns");
                SerializeCollectionNamespace(writer, value.CollectionNamespace);
            }
            if (value.DocumentKey != null)
            {
                writer.WriteName("documentKey");
                BsonDocumentSerializer.Instance.Serialize(context, value.DocumentKey);
            }
            if (value.UpdateDescription != null)
            {
                writer.WriteName("updateDescription");
                __updateDescriptionSerializer.Serialize(context, value.UpdateDescription);
            }
            if (value.FullDocument != null)
            {
                writer.WriteName("fullDocument");
                _documentSerializer.Serialize(context, value.FullDocument);
            }
            writer.WriteEndDocument();
        }