public async Task ExplainAsync_for_count_should_execute_an_ExplainOperation() { var countModel = new CountModel { Criteria = new BsonDocument("x", 1), Hint = "funny", Limit = 10, MaxTime = TimeSpan.FromSeconds(20), Skip = 30 }; var model = new ExplainModel(countModel) { Verbosity = ExplainVerbosity.ExecutionStats }; await _subject.ExplainAsync(model, Timeout.InfiniteTimeSpan, CancellationToken.None); var call = _operationExecutor.GetReadCall <BsonDocument>(); call.Operation.Should().BeOfType <ExplainOperation>(); var operation = (ExplainOperation)call.Operation; operation.DatabaseNamespace.DatabaseName.Should().Be("foo"); operation.Command.Should().NotBeNull(); operation.Verbosity.Should().Be(model.Verbosity.ToCore()); }
private Task <BsonDocument> ExplainCountAsync(CountModel model, ExplainVerbosity verbosity, TimeSpan?timeout, CancellationToken cancellationToken) { var countOperation = CreateCountOperation(model); var explainOperation = countOperation.ToExplainOperation(verbosity.ToCore()); return(ExecuteReadOperation(explainOperation, timeout, cancellationToken)); }
public Task <long> CountAsync(CountModel model, TimeSpan?timeout, CancellationToken cancellationToken) { Ensure.IsNotNull(model, "model"); var operation = CreateCountOperation(model); return(ExecuteReadOperation(operation, timeout, cancellationToken)); }
private CountOperation CreateCountOperation(CountModel model) { return(new CountOperation( _collectionNamespace, _messageEncoderSettings) { Criteria = ConvertToBsonDocument(model.Criteria), Hint = model.Hint is string?BsonValue.Create((string)model.Hint) : ConvertToBsonDocument(model.Hint), Limit = model.Limit, MaxTime = model.MaxTime, Skip = model.Skip }); }
public Task <long> CountAsync(CountModel model, TimeSpan?timeout, CancellationToken cancellationToken) { Ensure.IsNotNull(model, "model"); var operation = new CountOperation( _collectionNamespace, GetMessageEncoderSettings()) { Filter = ConvertToBsonDocument(model.Filter), Hint = model.Hint is string?BsonValue.Create((string)model.Hint) : ConvertToBsonDocument(model.Hint), Limit = model.Limit, MaxTime = model.MaxTime, Skip = model.Skip }; return(ExecuteReadOperation(operation, timeout, cancellationToken)); }
public async Task CountAsync_should_execute_the_CountOperation() { var model = new CountModel { Filter = new BsonDocument("x", 1), Hint = "funny", Limit = 10, MaxTime = TimeSpan.FromSeconds(20), Skip = 30 }; await _subject.CountAsync(model, Timeout.InfiniteTimeSpan, CancellationToken.None); var call = _operationExecutor.GetReadCall<long>(); call.Operation.Should().BeOfType<CountOperation>(); var operation = (CountOperation)call.Operation; operation.CollectionNamespace.FullName.Should().Be("foo.bar"); operation.Filter.Should().Be((BsonDocument)model.Filter); operation.Hint.Should().Be((string)model.Hint); operation.Limit.Should().Be(model.Limit); operation.MaxTime.Should().Be(model.MaxTime); operation.Skip.Should().Be(model.Skip); }
public async Task CountAsync_should_execute_the_CountOperation() { var model = new CountModel { Criteria = new BsonDocument("x", 1), Hint = "funny", Limit = 10, MaxTime = TimeSpan.FromSeconds(20), Skip = 30 }; await _subject.CountAsync(model, Timeout.InfiniteTimeSpan, CancellationToken.None); var call = _operationExecutor.GetReadCall <long>(); call.Operation.Should().BeOfType <CountOperation>(); var operation = (CountOperation)call.Operation; operation.CollectionNamespace.FullName.Should().Be("foo.bar"); operation.Criteria.Should().Be((BsonDocument)model.Criteria); operation.Hint.Should().Be((string)model.Hint); operation.Limit.Should().Be(model.Limit); operation.MaxTime.Should().Be(model.MaxTime); operation.Skip.Should().Be(model.Skip); }