public void constructor_should_initialize_subject() { var subject = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); subject.CollectionNamespace.Should().BeSameAs(_collectionNamespace); subject.MessageEncoderSettings.Should().BeSameAs(_messageEncoderSettings); }
public void CollectionNamespace_get_should_return_expected_result() { var subject = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); var result = subject.CollectionNamespace; result.Should().BeSameAs(_collectionNamespace); }
public void Execute_should_return_expected_result_when_collection_does_not_exist( [Values(false, true)] bool async) { DropCollection(async); var subject = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); var result = ExecuteOperation(subject, async); var list = ReadCursorToEnd(result, async); list.Count.Should().Be(0); }
public void Execute_should_return_expected_result( [Values(false, true)] bool async) { EnsureCollectionExists(async); var subject = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); var result = ExecuteOperation(subject, async); var list = ReadCursorToEnd(result, async); list.Select(index => index["name"].AsString).Should().BeEquivalentTo("_id_"); }
public async Task ExecuteAsync_should_return_expected_result() { using (var binding = CoreTestConfiguration.GetReadWriteBinding()) { var subject = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); await EnsureCollectionExistsAsync(binding); var expectedNames = new[] { "_id_" }; var result = await subject.ExecuteAsync(binding, CancellationToken.None); var list = await result.ToListAsync(); list.Select(index => index["name"].AsString).Should().BeEquivalentTo(expectedNames); } }
private List<BsonDocument> ListIndexes(bool async) { var listIndexesOperation = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); var cursor = ExecuteOperation(listIndexesOperation, async); return ReadCursorToEnd(cursor, async); }
public override Task <IAsyncCursor <BsonDocument> > ListAsync(CancellationToken cancellationToken = default(CancellationToken)) { var op = new ListIndexesOperation(_collection._collectionNamespace, _collection._messageEncoderSettings); return(_collection.ExecuteReadOperation(op, ReadPreference.Primary, cancellationToken)); }
public void Execute_should_create_collection_when_AutoIndexId_is_set( [Values(false, true)] bool autoIndexId, [Values(false, true)] bool async) { var subject = new CreateCollectionOperation(_collectionNamespace, _messageEncoderSettings) { AutoIndexId = autoIndexId }; using (var binding = CoreTestConfiguration.GetReadWriteBinding()) { var result = ExecuteOperation(subject, binding, async); result["ok"].ToBoolean().Should().BeTrue(); var listIndexesOperation = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); List<BsonDocument> indexes; if (async) { var cursor = listIndexesOperation.ExecuteAsync(binding, CancellationToken.None).GetAwaiter().GetResult(); indexes = cursor.ToListAsync().GetAwaiter().GetResult(); } else { var cursor = listIndexesOperation.Execute(binding, CancellationToken.None); indexes = cursor.ToList(); } indexes.Count.Should().Be(autoIndexId ? 1 : 0); } }
public Task <IReadOnlyList <BsonDocument> > GetIndexesAsync(CancellationToken cancellationToken = default(CancellationToken)) { var op = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); return(ExecuteReadOperation(op, cancellationToken)); }
public async Task ExecuteAsync_should_create_collection_when_AutoIndexId_is_set( [Values(false, true)] bool autoIndexId) { var subject = new CreateCollectionOperation(_collectionNamespace, _messageEncoderSettings) { AutoIndexId = autoIndexId }; using (var binding = CoreTestConfiguration.GetReadWriteBinding()) { var result = await subject.ExecuteAsync(binding, CancellationToken.None); result["ok"].ToBoolean().Should().BeTrue(); var listIndexesOperation = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); var cursor = await listIndexesOperation.ExecuteAsync(binding, CancellationToken.None); var indexes = await cursor.ToListAsync(); indexes.Count.Should().Be(autoIndexId ? 1 : 0); } }
public async Task ExecuteAsync_should_return_expected_result_when_collection_does_not_exist() { using (var binding = CoreTestConfiguration.GetReadWriteBinding()) { var subject = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); await DropCollectionAsync(binding); var result = await subject.ExecuteAsync(binding, CancellationToken.None); var list = await result.ToListAsync(); list.Count.Should().Be(0); } }
public void ExecuteAsync_should_throw_when_binding_is_null() { var subject = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); Func<Task> action = () => subject.ExecuteAsync(null, CancellationToken.None); action.ShouldThrow<ArgumentNullException>().And.ParamName.Should().Be("binding"); }
public void Execute_should_throw_when_binding_is_null( [Values(false, true)] bool async) { var subject = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); Action action = () => ExecuteOperation(subject, null, async); action.ShouldThrow<ArgumentNullException>().And.ParamName.Should().Be("binding"); }
public async Task ExecuteAsync_should_work_when_background_is_true() { var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)) { Background = true } }; var subject = new CreateIndexesOperation(_collectionNamespace, requests, _messageEncoderSettings); var result = await ExecuteOperationAsync(subject); result["ok"].ToBoolean().Should().BeTrue(); var listIndexesOperation = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); var cursor = await ExecuteOperationAsync(listIndexesOperation); var indexes = await cursor.ToListAsync(); var index = indexes.Single(i => i["name"].AsString == "x_1"); index["background"].ToBoolean().Should().BeTrue(); }
public async Task ExecuteAsync_should_work_when_expireAfter_has_value() { var expireAfterSeconds = 1.5; var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)) { ExpireAfter = TimeSpan.FromSeconds(expireAfterSeconds) } }; var subject = new CreateIndexesOperation(_collectionNamespace, requests, _messageEncoderSettings); var result = await ExecuteOperationAsync(subject); result["ok"].ToBoolean().Should().BeTrue(); var listIndexesOperation = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); var cursor = await ExecuteOperationAsync(listIndexesOperation); var indexes = await cursor.ToListAsync(); var index = indexes.Single(i => i["name"].AsString == "x_1"); index["expireAfterSeconds"].ToDouble().Should().Be(expireAfterSeconds); }
public async Task ExecuteAsync_should_work_when_creating_two_indexes() { var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)), new CreateIndexRequest(new BsonDocument("y", 1)) }; var subject = new CreateIndexesOperation(_collectionNamespace, requests, _messageEncoderSettings); var result = await ExecuteOperationAsync(subject); result["ok"].ToBoolean().Should().BeTrue(); var listIndexesOperation = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); var cursor = await ExecuteOperationAsync(listIndexesOperation); var indexes = await cursor.ToListAsync(); indexes.Select(index => index["name"].AsString).Should().BeEquivalentTo(new[] { "_id_", "x_1", "y_1" }); }