コード例 #1
0
        /// <summary>
        /// Gets a list of the names of all the collections in this database.
        /// </summary>
        /// <returns>A list of collection names.</returns>
        public virtual IEnumerable <string> GetCollectionNames()
        {
            var operation = new ListCollectionsOperation(_namespace, GetMessageEncoderSettings());
            var result    = ExecuteReadOperation(operation, ReadPreference.Primary);

            return(result.Select(c => c["name"].AsString).OrderBy(n => n).ToList());
        }
コード例 #2
0
        private IEnumerable <string> GetCollectionNames(IClientSessionHandle session)
        {
            var operation = new ListCollectionsOperation(_namespace, GetMessageEncoderSettings());
            var cursor    = ExecuteReadOperation(session, operation, ReadPreference.Primary);
            var list      = cursor.ToList();

            return(list.Select(c => c["name"].AsString).OrderBy(n => n).ToList());
        }
        public void constructor_should_initialize_subject()
        {
            var subject = new ListCollectionsOperation(_databaseNamespace, _messageEncoderSettings);

            subject.DatabaseNamespace.Should().BeSameAs(_databaseNamespace);
            subject.MessageEncoderSettings.Should().BeSameAs(_messageEncoderSettings);
            subject.Filter.Should().BeNull();
        }
コード例 #4
0
        public async Task <IReadOnlyList <string> > GetCollectionNamesAsync(CancellationToken cancellationToken)
        {
            var messageEncoderSettings = GetMessageEncoderSettings();
            var operation   = new ListCollectionsOperation(_databaseNamespace, messageEncoderSettings);
            var collections = await ExecuteReadOperation(operation, ReadPreference.Primary, cancellationToken).ConfigureAwait(false);

            return(collections.Select(c => c["name"].AsString).ToList());
        }
コード例 #5
0
        /// <summary>
        /// Gets a list of the names of all the collections in this database.
        /// </summary>
        /// <returns>A list of collection names.</returns>
        public virtual IEnumerable <string> GetCollectionNames()
        {
            var operation = new ListCollectionsOperation(_namespace, GetMessageEncoderSettings());
            var cursor    = ExecuteReadOperation(operation, ReadPreference.Primary);
            var list      = cursor.ToListAsync().GetAwaiter().GetResult();

            return(list.Select(c => c["name"].AsString).OrderBy(n => n).ToList());
        }
        public void Filter_get_and_set_should_work()
        {
            var subject = new ListCollectionsOperation(_databaseNamespace, _messageEncoderSettings);
            var filter = new BsonDocument("name", "abc");

            subject.Filter = filter;
            var result = subject.Filter;

            result.Should().BeSameAs(filter);
        }
コード例 #7
0
        public override Task <IAsyncCursor <BsonDocument> > ListCollectionsAsync(ListCollectionsOptions options, CancellationToken cancellationToken)
        {
            var messageEncoderSettings = GetMessageEncoderSettings();
            var operation = new ListCollectionsOperation(_databaseNamespace, messageEncoderSettings)
            {
                Filter = options == null ? null : options.Filter.Render(_settings.SerializerRegistry.GetSerializer <BsonDocument>(), _settings.SerializerRegistry)
            };

            return(ExecuteReadOperationAsync(operation, ReadPreference.Primary, cancellationToken));
        }
        public async Task ExecuteAsync_should_return_the_expected_result()
        {
            var subject = new ListCollectionsOperation(_databaseNamespace, _messageEncoderSettings);
            var expectedNames = new[] { "regular", "capped" };

            var result = await ExecuteOperationAsync(subject);
            var list = await result.ToListAsync();

            list.Count.Should().BeGreaterThan(0);
            list.Select(c => c["name"].AsString).Where(n => n != "system.indexes").Should().BeEquivalentTo(expectedNames);
        }
コード例 #9
0
        public void Execute_should_return_the_expected_result(
            [Values(false, true)]
            bool async)
        {
            var subject = new ListCollectionsOperation(_databaseNamespace, _messageEncoderSettings);
            var expectedNames = new[] { "regular", "capped" };

            var result = ExecuteOperation(subject, async);
            var list = ReadCursorToEnd(result, async);

            list.Count.Should().BeGreaterThan(0);
            list.Select(c => c["name"].AsString).Where(n => n != "system.indexes").Should().BeEquivalentTo(expectedNames);
        }
コード例 #10
0
        public void Execute_should_return_the_expected_result_when_filter_is_used(string filterString, string expectedName, bool async)
        {
            RequireServer.Check();
            EnsureCollectionsExist();
            var filter = BsonDocument.Parse(filterString);
            var subject = new ListCollectionsOperation(_databaseNamespace, _messageEncoderSettings)
            {
                Filter = filter
            };

            var result = ExecuteOperation(subject, async);
            var list = ReadCursorToEnd(result, async);

            list.Should().HaveCount(1);
            list[0]["name"].AsString.Should().Be(expectedName);
        }
コード例 #11
0
        public void Execute_should_throw_when_filter_name_is_not_a_string_and_connected_to_older_server(
            [Values(false, true)]
            bool async)
        {
            RequireServer.Check().VersionLessThan("2.7.0");
            var filter = new BsonDocument("name", new BsonRegularExpression("^abc"));
            var subject = new ListCollectionsOperation(_databaseNamespace, _messageEncoderSettings)
            {
                Filter = filter
            };

            Action action = () => ExecuteOperation(subject, async);

            action.ShouldThrow<NotSupportedException>();
        }
コード例 #12
0
        public void Execute_should_return_the_expected_result_when_the_database_does_not_exist(
            [Values(false, true)]
            bool async)
        {
            RequireServer.Check();
            var databaseNamespace = new DatabaseNamespace(_databaseNamespace.DatabaseName + "-not");
            var subject = new ListCollectionsOperation(databaseNamespace, _messageEncoderSettings);

            var result = ExecuteOperation(subject, async);
            var list = ReadCursorToEnd(result, async);

            list.Should().HaveCount(0);
        }
コード例 #13
0
 private BsonDocument GetViewInfo(IReadBinding binding, string viewName)
 {
     var listCollectionsOperation = new ListCollectionsOperation(_collectionNamespace.DatabaseNamespace, _messageEncoderSettings)
     {
         Filter = new BsonDocument("name", viewName)
     };
     return listCollectionsOperation.Execute(binding, CancellationToken.None).Single();
 }
コード例 #14
0
        public async Task ExecuteAsync_should_return_the_expected_result_when_filter_is_used(string filterString, string expectedName)
        {
            var filter = BsonDocument.Parse(filterString);
            var subject = new ListCollectionsOperation(_databaseNamespace, _messageEncoderSettings)
            {
                Filter = filter
            };

            var result = await ExecuteOperationAsync(subject);
            var list = await result.ToListAsync();

            list.Should().HaveCount(1);
            list[0]["name"].AsString.Should().Be(expectedName);
        }
コード例 #15
0
        public void ExecuteAsync_should_throw_when_filter_name_is_not_a_string_and_connected_to_older_server()
        {
            var filter = new BsonDocument("name", new BsonRegularExpression("^abc"));
            var subject = new ListCollectionsOperation(_databaseNamespace, _messageEncoderSettings)
            {
                Filter = filter
            };

            Func<Task> action = () => ExecuteOperationAsync(subject);

            action.ShouldThrow<NotSupportedException>();
        }
コード例 #16
0
        public async Task ExecuteAsync_should_return_the_expected_result_when_the_database_does_not_exist()
        {
            var databaseNamespace = new DatabaseNamespace(_databaseNamespace.DatabaseName + "-does-not-exist");
            var subject = new ListCollectionsOperation(databaseNamespace, _messageEncoderSettings);

            var result = await ExecuteOperationAsync(subject);
            var list = await result.ToListAsync();

            list.Should().HaveCount(0);
        }