public void Constructor_should_create_a_valid_instance() { var subject = new AggregateExplainOperation(_collectionNamespace, Enumerable.Empty<BsonDocument>(), _messageEncoderSettings); subject.CollectionNamespace.Should().Be(_collectionNamespace); subject.Pipeline.Should().BeEmpty(); subject.MessageEncoderSettings.Should().BeEquivalentTo(_messageEncoderSettings); }
public void AllowDiskUse_get_and_set_should_work() { var subject = new AggregateExplainOperation(_collectionNamespace, __pipeline, _messageEncoderSettings); subject.AllowDiskUse = true; var result = subject.AllowDiskUse; result.Should().Be(true); }
protected override void Given() { Require.MinimumServerVersion("2.4.0"); _subject = new AggregateExplainOperation( CollectionNamespace, new[] { BsonDocument.Parse("{$match: {x: { $gt: 3}}}") }, MessageEncoderSettings); }
public void MaxTime_should_have_the_correct_value() { var subject = new AggregateExplainOperation(_collectionNamespace, Enumerable.Empty<BsonDocument>(), _messageEncoderSettings); subject.MaxTime.Should().Be(null); subject.MaxTime = TimeSpan.FromSeconds(2); subject.MaxTime.Should().Be(TimeSpan.FromSeconds(2)); }
public void Collation_get_and_set_should_work() { var subject = new AggregateExplainOperation(_collectionNamespace, __pipeline, _messageEncoderSettings); var value = new Collation("en_US"); subject.Collation = value; var result = subject.Collation; result.Should().BeSameAs(value); }
public void AllowDiskUse_should_have_the_correct_value() { var subject = new AggregateExplainOperation(_collectionNamespace, Enumerable.Empty<BsonDocument>(), _messageEncoderSettings); subject.AllowDiskUse.Should().Be(null); subject.AllowDiskUse = true; subject.AllowDiskUse.Should().Be(true); }
public void Constructor_should_create_a_valid_instance() { var subject = new AggregateExplainOperation(_collectionNamespace, __pipeline, _messageEncoderSettings); subject.CollectionNamespace.Should().BeSameAs(_collectionNamespace); subject.Pipeline.Should().Equal(__pipeline); subject.MessageEncoderSettings.Should().BeSameAs(_messageEncoderSettings); subject.AllowDiskUse.Should().NotHaveValue(); subject.Collation.Should().BeNull(); subject.MaxTime.Should().NotHaveValue(); }
public void CreateCommand_should_create_the_correct_command( [Values(null, false, true)] bool? allowDiskUse, [Values(null, 2000)] int? maxTime) { var subject = new AggregateExplainOperation(_collectionNamespace, Enumerable.Empty<BsonDocument>(), _messageEncoderSettings) { AllowDiskUse = allowDiskUse, MaxTime = maxTime.HasValue ? TimeSpan.FromMilliseconds(maxTime.Value) : (TimeSpan?)null }; var expectedResult = new BsonDocument { { "aggregate", _collectionNamespace.CollectionName }, { "explain", true }, { "pipeline", new BsonArray(subject.Pipeline) }, { "allowDiskUse", () => allowDiskUse.Value, allowDiskUse.HasValue }, { "maxTimeMS", () => maxTime.Value, maxTime.HasValue } }; var result = subject.CreateCommand(); result.Should().Be(expectedResult); }
public void CreateCommand_should_return_expected_result_when_AllowDiskUse_is_set( [Values(false, true)] bool allowDiskUse) { var subject = new AggregateExplainOperation(_collectionNamespace, __pipeline, _messageEncoderSettings) { AllowDiskUse = allowDiskUse }; var result = subject.CreateCommand(null); var expectedResult = new BsonDocument { { "aggregate", _collectionNamespace.CollectionName }, { "explain", true }, { "pipeline", new BsonArray(__pipeline) }, { "allowDiskUse", allowDiskUse } }; result.Should().Be(expectedResult); }
public void Execute_should_return_the_result_with_allow_disk_use( [Values(false, true)] bool async) { var subject = new AggregateExplainOperation(_collectionNamespace, Enumerable.Empty<BsonDocument>(), _messageEncoderSettings) { AllowDiskUse = true, MaxTime = TimeSpan.FromSeconds(20) }; var result = ExecuteOperation(subject, async); result.Should().NotBeNull(); }
public void Execute_should_return_the_result_without_any_options( [Values(false, true)] bool async) { var subject = new AggregateExplainOperation(_collectionNamespace, Enumerable.Empty<BsonDocument>(), _messageEncoderSettings); var result = ExecuteOperation(subject, async); result.Should().NotBeNull(); }
public void MaxTime_get_and_set_should_work() { var subject = new AggregateExplainOperation(_collectionNamespace, __pipeline, _messageEncoderSettings); var value = TimeSpan.FromSeconds(2); subject.MaxTime = value; var result = subject.MaxTime; result.Should().Be(value); }
public void CreateCommand_should_return_expected_result() { var subject = new AggregateExplainOperation(_collectionNamespace, __pipeline, _messageEncoderSettings); var result = subject.CreateCommand(null); var expectedResult = new BsonDocument { { "aggregate", _collectionNamespace.CollectionName }, { "explain", true }, { "pipeline", new BsonArray(__pipeline) } }; result.Should().Be(expectedResult); }
public void Execute_should_return_expected_result_when_MaxTime_is_set( [Values(false, true)] bool async) { RequireServer.Check().Supports(Feature.AggregateExplain); var subject = new AggregateExplainOperation(_collectionNamespace, __pipeline, _messageEncoderSettings) { MaxTime = TimeSpan.FromSeconds(1) }; var result = ExecuteOperation(subject, async); result.Should().NotBeNull(); }
public void Execute_should_throw_when_Collation_is_set_but_not_supported( [Values(false, true)] bool async) { RequireServer.Check().Supports(Feature.AggregateExplain).DoesNotSupport(Feature.Collation); var subject = new AggregateExplainOperation(_collectionNamespace, __pipeline, _messageEncoderSettings) { Collation = new Collation("en_US") }; var exception = Record.Exception(() => ExecuteOperation(subject, async)); exception.Should().BeOfType<NotSupportedException>(); }
public void CreateCommand_should_throw_when_Collation_is_set_but_not_supported() { var subject = new AggregateExplainOperation(_collectionNamespace, __pipeline, _messageEncoderSettings) { Collation = new Collation("en_US") }; var exception = Record.Exception(() => subject.CreateCommand(Feature.Collation.LastNotSupportedVersion)); exception.Should().BeOfType<NotSupportedException>(); }
public void CreateCommand_should_return_expected_result_when_MaxTime_is_set( [Values(1, 2)] int milliseconds) { var subject = new AggregateExplainOperation(_collectionNamespace, __pipeline, _messageEncoderSettings) { MaxTime = TimeSpan.FromMilliseconds(milliseconds) }; var result = subject.CreateCommand(null); var expectedResult = new BsonDocument { { "aggregate", _collectionNamespace.CollectionName }, { "explain", true }, { "pipeline", new BsonArray(__pipeline) }, { "maxTimeMS", milliseconds } }; result.Should().Be(expectedResult); }
public void CreateCommand_should_return_expected_result_when_Collation_is_set( [Values("en_US", "fr_CA")] string locale) { var collation = new Collation(locale); var subject = new AggregateExplainOperation(_collectionNamespace, __pipeline, _messageEncoderSettings) { Collation = collation }; var result = subject.CreateCommand(Feature.Collation.FirstSupportedVersion); var expectedResult = new BsonDocument { { "aggregate", _collectionNamespace.CollectionName }, { "explain", true }, { "pipeline", new BsonArray(__pipeline) }, { "collation", collation.ToBsonDocument() } }; result.Should().Be(expectedResult); }