// 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); }
// private static methods private static RenderedPipelineDefinition <TResult> RenderPipeline <TResult, TDocument>( PipelineDefinition <ChangeStreamDocument <TDocument>, TResult> pipeline, IBsonSerializer <TDocument> documentSerializer) { var changeStreamDocumentSerializer = new ChangeStreamDocumentSerializer <TDocument>(documentSerializer); var serializerRegistry = BsonSerializer.SerializerRegistry; return(pipeline.Render(changeStreamDocumentSerializer, serializerRegistry)); }
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); }
public static IBsonSerializer <BsonDocument> _documentSerializer(this ChangeStreamDocumentSerializer <BsonDocument> obj) => (IBsonSerializer <BsonDocument>)Reflector.GetFieldValue(obj, nameof(_documentSerializer));