private BsonDocument CreateInitialHelloCommand(IReadOnlyList <IAuthenticator> authenticators, bool loadBalanced = false)
        {
            var command = HelloHelper.CreateCommand(_serverApi, loadBalanced: loadBalanced);

            HelloHelper.AddClientDocumentToCommand(command, _clientDocument);
            HelloHelper.AddCompressorsToCommand(command, _compressors);
            return(HelloHelper.CustomizeCommand(command, authenticators));
        }
        private BsonDocument CreateInitialHelloCommand(IReadOnlyList <IAuthenticator> authenticators)
        {
            var command = HelloHelper.CreateCommand();

            HelloHelper.AddClientDocumentToCommand(command, _clientDocument);
            HelloHelper.AddCompressorsToCommand(command, _compressors);
            return(HelloHelper.CustomizeCommand(command, authenticators));
        }
        public void AddCompressorsToCommand_with_compressors_should_return_expected_result(
            [Values(
                 new CompressorType[] { },
                 new [] { CompressorType.Zlib },
                 new [] { CompressorType.Snappy },
                 new [] { CompressorType.Zlib, CompressorType.Snappy },
                 new [] { CompressorType.ZStandard, CompressorType.Snappy })]
            CompressorType[] compressorsParameters)
        {
            var command     = HelloHelper.CreateCommand();
            var compressors =
                compressorsParameters
                .Select(c => new CompressorConfiguration(c))
                .ToArray();
            var result = HelloHelper.AddCompressorsToCommand(command, compressors);

            var expectedCompressions = string.Join(",", compressorsParameters.Select(c => $"'{CompressorTypeMapper.ToServerName(c)}'"));

            result.Should().Be(BsonDocument.Parse($"{{ isMaster : 1, compression: [{expectedCompressions}] }}"));
        }