// private methods
        private void AssertRegisteredMember(ChangeStreamDocumentSerializer <BsonDocument> changeStreamDocumentSerializer, string memberName, string elementName, IBsonSerializer memberSerializer)
        {
            var serializationInfo = changeStreamDocumentSerializer._memberSerializationInfo()[memberName];

            serializationInfo.ElementName.Should().Be(elementName);
            serializationInfo.Serializer.Should().BeSameAs(memberSerializer);
            serializationInfo.NominalType.Should().Be(memberSerializer.ValueType);
        }
Esempio n. 2
0
        public void constructor_should_initialize_instance()
        {
            var documentSerializer = new BsonDocumentSerializer();

            var result = new ChangeStreamDocumentSerializer <BsonDocument>(documentSerializer);

            result._documentSerializer().Should().BeSameAs(documentSerializer);
            result._memberSerializationInfo().Count.Should().Be(7);
            AssertRegisteredMember(result, "ClusterTime", "clusterTime", BsonTimestampSerializer.Instance);
            AssertRegisteredMember(result, "CollectionNamespace", "ns", ChangeStreamDocumentCollectionNamespaceSerializer.Instance);
            AssertRegisteredMember(result, "DocumentKey", "documentKey", BsonDocumentSerializer.Instance);
            AssertRegisteredMember(result, "FullDocument", "fullDocument", documentSerializer);
            AssertRegisteredMember(result, "OperationType", "operationType", ChangeStreamOperationTypeSerializer.Instance);
            AssertRegisteredMember(result, "ResumeToken", "_id", BsonDocumentSerializer.Instance);
            AssertRegisteredMember(result, "UpdateDescription", "updateDescription", ChangeStreamUpdateDescriptionSerializer.Instance);
        }