Beispiel #1
0
 public Task <IAsyncCursor <BsonDocument> > ListDatabasesAsync(
     IClientSessionHandle session,
     ListDatabasesOptions options,
     CancellationToken cancellationToken = default(CancellationToken))
 {
     return(wrapped.ListDatabasesAsync(session, options, cancellationToken));
 }
Beispiel #2
0
 public IAsyncCursor <BsonDocument> ListDatabases(
     IClientSessionHandle session,
     ListDatabasesOptions options,
     CancellationToken cancellationToken = default)
 {
     return(_client.ListDatabases(session, options, cancellationToken));
 }
Beispiel #3
0
        public void ListDatabases_should_invoke_the_correct_operation(
            [Values(false, true)] bool usingSession,
            [Values(false, true)] bool async)
        {
            var operationExecutor = new MockOperationExecutor();
            var subject           = new MongoClient(operationExecutor, DriverTestConfiguration.GetClientSettings());
            var session           = CreateClientSession();
            var cancellationToken = new CancellationTokenSource().Token;
            var filterDocument    = BsonDocument.Parse("{ name : \"awesome\" }");
            var filterDefinition  = (FilterDefinition <BsonDocument>)filterDocument;
            var nameOnly          = true;
            var options           = new ListDatabasesOptions
            {
                Filter   = filterDefinition,
                NameOnly = nameOnly
            };

            if (usingSession)
            {
                if (async)
                {
                    subject.ListDatabasesAsync(session, options, cancellationToken).GetAwaiter().GetResult();
                }
                else
                {
                    subject.ListDatabases(session, options, cancellationToken);
                }
            }
            else
            {
                if (async)
                {
                    subject.ListDatabasesAsync(options, cancellationToken).GetAwaiter().GetResult();
                }
                else
                {
                    subject.ListDatabases(options, cancellationToken);
                }
            }

            var call = operationExecutor.GetReadCall <IAsyncCursor <BsonDocument> >();

            if (usingSession)
            {
                call.SessionId.Should().BeSameAs(session.ServerSession.Id);
            }
            else
            {
                call.UsedImplicitSession.Should().BeTrue();
            }
            call.CancellationToken.Should().Be(cancellationToken);

            var operation = call.Operation.Should().BeOfType <ListDatabasesOperation>().Subject;

            operation.Filter.Should().Be(filterDocument);
            operation.NameOnly.Should().Be(nameOnly);
        }
Beispiel #4
0
        public Task <IAsyncCursor <BsonDocument> > ListDatabasesAsync(
            ListDatabasesOptions options,
            CancellationToken cancellationToken = default)
        {
            if (TryGetSession(out IClientSessionHandle? session))
            {
                return(_client.ListDatabasesAsync(session, options, cancellationToken));
            }

            return(_client.ListDatabasesAsync(options, cancellationToken));
        }
        public void Execute_should_return_the_expected_result_when_AuthorizedDatabases_is_used(
            [Values(null, false, true)] bool?authorizedDatabases)
        {
            RequireServer.Check().Supports(Feature.ListDatabasesAuthorizedDatabases).Authentication(true);

            var setupClient = DriverTestConfiguration.Client;

            CreateListDatabasesRole(setupClient, _roleName);
            CreateListDatabasesUser(setupClient, _userName, _password, _databaseName, _roleName);
            setupClient.GetDatabase(_databaseName).GetCollection <BsonDocument>("test").InsertOne(new BsonDocument());

            var settings = DriverTestConfiguration.Client.Settings.Clone();

            settings.Credential = MongoCredential.FromComponents(mechanism: null, source: null, username: _userName, password: _password);
            var testClient = new MongoClient(settings);

            var options = new ListDatabasesOptions
            {
                AuthorizedDatabases = authorizedDatabases,
                NameOnly            = true,
            };
            var result = testClient.ListDatabases(options).ToList();

            if (authorizedDatabases.HasValue && authorizedDatabases.Value)
            {
                result.Should().BeEquivalentTo(new BsonArray {
                    new BsonDocument {
                        { "name", _databaseName }
                    }
                });
            }
            else
            {
                result.Count.Should().BeGreaterThan(1);
            }
        }
Beispiel #6
0
 public IAsyncCursor <BsonDocument> ListDatabases(
     ListDatabasesOptions options        = null,
     CancellationToken cancellationToken = default(CancellationToken))
 {
     return(wrapped.ListDatabases(options, cancellationToken));
 }
Beispiel #7
0
 public IAsyncCursor <BsonDocument> ListDatabases(ListDatabasesOptions options, CancellationToken cancellationToken = default)
 {
     return(((IMongoClient)Client).ListDatabases(options, cancellationToken));
 }
Beispiel #8
0
 public IAsyncCursor <BsonDocument> ListDatabases(ListDatabasesOptions options, CancellationToken cancellationToken = default)
 {
     throw new System.NotImplementedException();
 }
Beispiel #9
0
 public Task <IAsyncCursor <BsonDocument> > ListDatabasesAsync(IClientSessionHandle session, ListDatabasesOptions options, CancellationToken cancellationToken = default)
 {
     throw new System.NotImplementedException();
 }
Beispiel #10
0
 public virtual Task <IAsyncCursor <BsonDocument> > ListDatabasesAsync(IClientSessionHandle session, ListDatabasesOptions options, CancellationToken cancellationToken = new CancellationToken()) => throw new NotImplementedException();
Beispiel #11
0
 public virtual IAsyncCursor <BsonDocument> ListDatabases(ListDatabasesOptions options, CancellationToken cancellationToken = new CancellationToken()) => throw new NotImplementedException();