public void CreateOperation_should_return_expected_result( [Values(null, 1, 2)] int?w, [Values(null, -10000, 0, 1, 42, 9000, 10000, 10001)] int?maxTimeTicks) { var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)) }; var commitQuorum = w.HasValue ? CreateIndexCommitQuorum.Create(w.Value) : null; var maxTime = maxTimeTicks == null ? (TimeSpan?)null : TimeSpan.FromTicks(maxTimeTicks.Value); var writeConcern = new WriteConcern(1); var subject = new CreateIndexesOperation(_collectionNamespace, requests, _messageEncoderSettings) { CommitQuorum = commitQuorum, MaxTime = maxTime, WriteConcern = writeConcern }; var result = subject.CreateOperation(); result.Should().BeOfType <CreateIndexesUsingCommandOperation>(); var operation = (CreateIndexesUsingCommandOperation)result; operation.CollectionNamespace.Should().BeSameAs(_collectionNamespace); operation.CommitQuorum.Should().BeSameAs(commitQuorum); operation.MaxTime.Should().Be(maxTime); operation.MessageEncoderSettings.Should().BeSameAs(_messageEncoderSettings); operation.Requests.Should().Equal(requests); operation.WriteConcern.Should().BeSameAs(writeConcern); }
public void CreateOperation_should_return_expected_result( [Values(false, true)] bool isCommandSupported) { var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)) }; var writeConcern = new WriteConcern(1); var subject = new CreateIndexesOperation(_collectionNamespace, requests, _messageEncoderSettings) { WriteConcern = writeConcern }; var serverVersion = Feature.CreateIndexesCommand.SupportedOrNotSupportedVersion(isCommandSupported); var result = subject.CreateOperation(serverVersion); if (isCommandSupported) { result.Should().BeOfType <CreateIndexesUsingCommandOperation>(); var operation = (CreateIndexesUsingCommandOperation)result; operation.CollectionNamespace.Should().BeSameAs(_collectionNamespace); operation.MessageEncoderSettings.Should().BeSameAs(_messageEncoderSettings); operation.Requests.Should().Equal(requests); operation.WriteConcern.Should().BeSameAs(writeConcern); } else { result.Should().BeOfType <CreateIndexesUsingInsertOperation>(); var operation = (CreateIndexesUsingInsertOperation)result; operation.CollectionNamespace.Should().BeSameAs(_collectionNamespace); operation.MessageEncoderSettings.Should().BeSameAs(_messageEncoderSettings); operation.Requests.Should().Equal(requests); } }