/// <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()); }
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(); }
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()); }
/// <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); }
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); }
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); }
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); }
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>(); }
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); }
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(); }
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); }
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>(); }
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); }