// internal methods internal void ConfigureAutoEncryptionMessageEncoderSettings(MessageEncoderSettings messageEncoderSettings) { var autoEncryptionOptions = _settings.AutoEncryptionOptions; if (autoEncryptionOptions != null) { if (!autoEncryptionOptions.BypassAutoEncryption) { messageEncoderSettings.Add(MessageEncoderSettingsName.BinaryDocumentFieldEncryptor, _libMongoCryptController); } messageEncoderSettings.Add(MessageEncoderSettingsName.BinaryDocumentFieldDecryptor, _libMongoCryptController); } }
public void WriteMessage_should_not_exceed_MaxMessageSize() { var documents = new BsonDocument[] { new BsonDocument("x", 1), new BsonDocument("x", 2) }; var type0Section = CreateType0Section(); var type1Section = CreateType1Section("id", documents, canBeSplit: true); var message = CreateMessage(sections: new CommandMessageSection[] { type0Section, type1Section }); var messageBytes = CreateMessageBytes(message); var maxMessageSize = messageBytes.Length - 1; var encoderSettings = new MessageEncoderSettings(); encoderSettings.Add(MessageEncoderSettingsName.MaxMessageSize, maxMessageSize); var stream = new MemoryStream(); var subject = CreateSubject(stream: stream, encoderSettings: encoderSettings); subject.WriteMessage(message); var result = stream.ToArray(); result.Length.Should().BeLessOrEqualTo(maxMessageSize); var batch = type1Section.Documents; batch.AllItemsWereProcessed.Should().BeFalse(); batch.Count.Should().Be(2); // no one has called AdvancePastProcessedItems yet batch.Offset.Should().Be(0); batch.ProcessedCount.Should().Be(1); }
public void MaxMessageSize_should_return_expected_result( [Values(null, 1, 2)] int?maxMessageSize) { var encoderSettings = new MessageEncoderSettings(); encoderSettings.Add(MessageEncoderSettingsName.MaxMessageSize, maxMessageSize); var subject = CreateSubject(encoderSettings: encoderSettings); var result = subject.MaxMessageSize(); result.Should().Be(maxMessageSize); }
// private methods private MessageEncoderSettings GetMessageEncoderSettings() { var messageEncoderSettings = new MessageEncoderSettings { { MessageEncoderSettingsName.ReadEncoding, _settings.ReadEncoding ?? Utf8Encodings.Strict }, { MessageEncoderSettingsName.WriteEncoding, _settings.WriteEncoding ?? Utf8Encodings.Strict } }; #pragma warning disable 618 if (BsonDefaults.GuidRepresentationMode == GuidRepresentationMode.V2) { messageEncoderSettings.Add(MessageEncoderSettingsName.GuidRepresentation, _settings.GuidRepresentation); } #pragma warning restore 618 return(messageEncoderSettings); }
internal static MessageEncoderSettings GetMessageEncoderSettings <TFileId>(this IGridFSBucket <TFileId> bucket) { var databaseSettings = bucket.Database.Settings; var messageEncoderSettings = new MessageEncoderSettings { { MessageEncoderSettingsName.ReadEncoding, databaseSettings.ReadEncoding ?? Utf8Encodings.Strict }, { MessageEncoderSettingsName.WriteEncoding, databaseSettings.WriteEncoding ?? Utf8Encodings.Strict } }; #pragma warning disable 618 if (BsonDefaults.GuidRepresentationMode == GuidRepresentationMode.V2) { messageEncoderSettings.Add(MessageEncoderSettingsName.GuidRepresentation, databaseSettings.GuidRepresentation); } #pragma warning restore 618 return(messageEncoderSettings); }
// constructors public MongoDatabaseImpl(IMongoClient client, DatabaseNamespace databaseNamespace, MongoDatabaseSettings settings, ICluster cluster, IOperationExecutor operationExecutor) { _client = Ensure.IsNotNull(client, nameof(client)); _databaseNamespace = Ensure.IsNotNull(databaseNamespace, nameof(databaseNamespace)); _settings = Ensure.IsNotNull(settings, nameof(settings)).Freeze(); _cluster = Ensure.IsNotNull(cluster, nameof(cluster)); _operationExecutor = Ensure.IsNotNull(operationExecutor, nameof(operationExecutor)); _messageEncoderSettings = new MessageEncoderSettings { { MessageEncoderSettingsName.ReadEncoding, _settings.ReadEncoding ?? Utf8Encodings.Strict }, { MessageEncoderSettingsName.WriteEncoding, _settings.WriteEncoding ?? Utf8Encodings.Strict } }; #pragma warning disable 618 if (BsonDefaults.GuidRepresentationMode == GuidRepresentationMode.V2) { _messageEncoderSettings.Add(MessageEncoderSettingsName.GuidRepresentation, _settings.GuidRepresentation); } #pragma warning restore 618 }