public void BatchSize_set_should_throw_when_value_is_invalid( [Values(-1)] int value) { var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings); Action action = () => subject.BatchSize = value; action.ShouldThrow<ArgumentException>().And.ParamName.Should().Be("value"); }
public void BatchSize_get_and_set_should_work( [Values(null, 0, 1)] int? value) { var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings); subject.BatchSize = value; var result = subject.BatchSize; result.Should().Be(value); }
public void AllowPartialResults_get_and_set_should_work( [Values(null, false, true)] bool? value) { var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings); subject.AllowPartialResults = value; var result = subject.AllowPartialResults; result.Should().Be(value); }
public void CollectionNamespace_get_should_return_expected_result( [Values("a", "b")] string collectionName) { var databaseNamespace = new DatabaseNamespace("test"); var collectionNamespace = new CollectionNamespace(databaseNamespace, collectionName); var subject = new FindOpcodeOperation<BsonDocument>(collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings); var result = subject.CollectionNamespace; result.Should().Be(collectionNamespace); }
public void Sort_get_and_set_should_work( [Values(null, "{ a : 1 }", "{ b : -1 }")] string json) { var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings); var value = json == null ? null : BsonDocument.Parse(json); subject.Sort = value; var result = subject.Sort; result.Should().Be(value); }
public void ResultSerializer_get_should_return_expected_result() { var resultSerializer = new BsonDocumentSerializer(); var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, resultSerializer, _messageEncoderSettings); var result = subject.ResultSerializer; result.Should().Be(resultSerializer); }
public void MessageEncoderSettings_get_should_return_expected_result( [Values(GuidRepresentation.CSharpLegacy, GuidRepresentation.Standard)] GuidRepresentation guidRepresentation) { var messageEncoderSettings = new MessageEncoderSettings { { "GuidRepresentation", guidRepresentation } }; var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, messageEncoderSettings); var result = subject.MessageEncoderSettings; result.Should().BeEquivalentTo(messageEncoderSettings); }
public async Task ExecuteAsync_should_find_all_the_documents_matching_the_query_when_limit_is_used( [Values(1, 5, 6, 12)] int limit) { var collectionNamespace = CoreTestConfiguration.GetCollectionNamespaceForTestMethod(); for (var id = 1; id <= limit + 1; id++) { var document = new BsonDocument { { "id", id }, { "filler", new string('x', 1000000) } }; // about 1MB big var requests = new[] { new InsertRequest(document) }; var insertOperation = new BulkMixedWriteOperation(collectionNamespace, requests, new MessageEncoderSettings()); ExecuteOperation(insertOperation); } var subject = new FindOpcodeOperation<BsonDocument>(collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings) { Limit = limit }; var cursor = await ExecuteOperationAsync(subject); var result = await ReadCursorToEndAsync(cursor); result.Should().HaveCount(limit); }
public void Limit_get_and_set_should_work( [Values(-2, -1, 0, 1, 2)] int? value) { var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings); subject.Limit = value; var result = subject.Limit; result.Should().Be(value); }
public async Task ExecuteAsync_should_find_documents_matching_options() { var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings) { Comment = "funny", Filter = BsonDocument.Parse("{ y : 1 }"), Limit = 4, MaxTime = TimeSpan.FromSeconds(20), Projection = BsonDocument.Parse("{ y : 1 }"), Skip = 1, Sort = BsonDocument.Parse("{ _id : -1 }") }; var cursor = await ExecuteOperationAsync(subject); var result = await ReadCursorToEndAsync(cursor); result.Should().HaveCount(1); }
public void ExecuteAsync_should_throw_when_binding_is_null() { var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings); Func<Task> action = () => subject.ExecuteAsync(null, CancellationToken.None); action.ShouldThrow<ArgumentNullException>().And.ParamName.Should().Be("binding"); }
public async Task ExecuteAsync_should_find_all_the_documents_matching_the_query_when_split_across_batches() { var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings) { BatchSize = 2 }; var cursor = await ExecuteOperationAsync(subject); var result = await ReadCursorToEndAsync(cursor); result.Should().HaveCount(5); }
public void CursorType_get_and_set_should_work( [Values(CursorType.NonTailable, CursorType.Tailable)] CursorType value) { var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings); subject.CursorType = value; var result = subject.CursorType; result.Should().Be(value); }
public void CreateWrappedQuery_should_create_the_correct_query_when_connected_to_a_shard_router() { var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings) { Comment = "funny", Filter = BsonDocument.Parse("{x: 1}"), MaxTime = TimeSpan.FromSeconds(20), Modifiers = BsonDocument.Parse("{$comment: \"notfunny\", $snapshot: true}"), Projection = BsonDocument.Parse("{y: 1}"), Sort = BsonDocument.Parse("{a: 1}") }; var expectedResult = new BsonDocument { { "$query", BsonDocument.Parse("{x: 1}") }, { "$readPreference", BsonDocument.Parse("{mode: \"secondary\"}") }, { "$orderby", BsonDocument.Parse("{a: 1}") }, { "$comment", "funny" }, { "$maxTimeMS", 20000 }, { "$snapshot", true } }; var result = subject.CreateWrappedQuery(ServerType.ShardRouter, ReadPreference.Secondary); result.Should().Be(expectedResult); }
public void Comment_get_and_set_should_work( [Values(null, "a", "b")] string value) { var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings); subject.Comment = value; var result = subject.Comment; result.Should().Be(value); }
public void MaxTime_get_and_set_should_work( [Values(null, 1)] int? seconds) { var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings); var value = seconds == null ? (TimeSpan?)null : TimeSpan.FromSeconds(seconds.Value); subject.MaxTime = value; var result = subject.MaxTime; result.Should().Be(value); }
public void constructor_should_initialize_instance() { var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings); subject.CollectionNamespace.Should().Be(_collectionNamespace); subject.ResultSerializer.Should().NotBeNull(); subject.MessageEncoderSettings.Should().BeEquivalentTo(_messageEncoderSettings); subject.AllowPartialResults.Should().NotHaveValue(); subject.BatchSize.Should().NotHaveValue(); subject.Comment.Should().BeNull(); subject.CursorType.Should().Be(CursorType.NonTailable); subject.Filter.Should().BeNull(); subject.FirstBatchSize.Should().NotHaveValue(); subject.Hint.Should().BeNull(); subject.Limit.Should().NotHaveValue(); subject.Max.Should().BeNull(); subject.MaxScan.Should().NotHaveValue(); subject.MaxTime.Should().NotHaveValue(); subject.Min.Should().BeNull(); subject.NoCursorTimeout.Should().NotHaveValue(); subject.OplogReplay.Should().NotHaveValue(); subject.Projection.Should().BeNull(); subject.ResultSerializer.Should().Be(BsonDocumentSerializer.Instance); subject.ShowRecordId.Should().NotHaveValue(); subject.Skip.Should().NotHaveValue(); subject.Snapshot.Should().NotHaveValue(); subject.Sort.Should().BeNull(); }
public async Task ExecuteAsync_should_find_all_the_documents_matching_the_query() { RequireServer.Any(); EnsureTestData(); var subject = new FindOpcodeOperation<BsonDocument>(_collectionNamespace, BsonDocumentSerializer.Instance, _messageEncoderSettings); var cursor = await ExecuteOperationAsync(subject); var result = await ReadCursorToEndAsync(cursor); result.Should().HaveCount(5); }