public void CollectionNamespace_get_should_return_expected_value() { var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)) }; var subject = new CreateIndexesUsingInsertOperation(_collectionNamespace, requests, _messageEncoderSettings); var result = subject.CollectionNamespace; result.Should().BeSameAs(_collectionNamespace); }
public void constructor_should_initialize_subject() { var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)) }; var subject = new CreateIndexesUsingInsertOperation(_collectionNamespace, requests, _messageEncoderSettings); subject.CollectionNamespace.Should().BeSameAs(_collectionNamespace); subject.Requests.Should().Equal(requests); subject.MessageEncoderSettings.Should().BeSameAs(_messageEncoderSettings); }
public void Execute_should_work_when_creating_one_index( [Values(false, true)] bool async) { var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)) }; var subject = new CreateIndexesUsingInsertOperation(_collectionNamespace, requests, _messageEncoderSettings); var result = ExecuteOperation(subject, async); result["ok"].ToBoolean().Should().BeTrue(); var indexes = ListIndexes(async); indexes.Select(index => index["name"].AsString).Should().BeEquivalentTo(new[] { "_id_", "x_1" }); }
public void Execute_should_work_when_background_is_true( [Values(false, true)] bool async) { var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)) { Background = true } }; var subject = new CreateIndexesUsingInsertOperation(_collectionNamespace, requests, _messageEncoderSettings); var result = ExecuteOperation(subject, async); result["ok"].ToBoolean().Should().BeTrue(); var indexes = ListIndexes(async); var index = indexes.Single(i => i["name"].AsString == "x_1"); index["background"].ToBoolean().Should().BeTrue(); }
public void CreateOperation_should_return_expected_result() { var request = new CreateIndexRequest(new BsonDocument("x", 1)); var requests = new[] { request }; var writeConcern = new WriteConcern(1); var subject = new CreateIndexesUsingInsertOperation(_collectionNamespace, requests, _messageEncoderSettings); var result = subject.CreateOperation(null, request); result.BypassDocumentValidation.Should().NotHaveValue(); result.CollectionNamespace.CollectionName.Should().Be("system.indexes"); result.ContinueOnError.Should().BeFalse(); result.DocumentSource.Batch.Should().NotBeNull(); result.MaxBatchCount.Should().NotHaveValue(); result.MaxDocumentSize.Should().NotHaveValue(); result.MaxMessageSize.Should().NotHaveValue(); result.MessageEncoderSettings.Should().BeSameAs(_messageEncoderSettings); result.Serializer.Should().BeSameAs(BsonDocumentSerializer.Instance); }
public void WriteConcern_set_should_throw_when_value_is_null() { var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)) }; var subject = new CreateIndexesUsingInsertOperation(_collectionNamespace, requests, _messageEncoderSettings); Action action = () => { subject.WriteConcern = null; }; action.ShouldThrow<ArgumentNullException>().And.ParamName.Should().Be("value"); }
public void WriteConcern_get_and_set_should_work() { var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)) }; var subject = new CreateIndexesUsingInsertOperation(_collectionNamespace, requests, _messageEncoderSettings); var value = WriteConcern.WMajority; subject.WriteConcern = value; var result = subject.WriteConcern; result.Should().BeSameAs(value); }
public void Execute_should_work_when_expireAfter_has_value( [Values(false, true)] bool async) { var expireAfterSeconds = 1.5; var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)) { ExpireAfter = TimeSpan.FromSeconds(expireAfterSeconds) } }; var subject = new CreateIndexesUsingInsertOperation(_collectionNamespace, requests, _messageEncoderSettings); var result = ExecuteOperation(subject, async); result["ok"].ToBoolean().Should().BeTrue(); var indexes = ListIndexes(async); var index = indexes.Single(i => i["name"].AsString == "x_1"); index["expireAfterSeconds"].ToDouble().Should().Be(expireAfterSeconds); }
public void Execute_should_work_when_unique_is_true( [Values(false, true)] bool async) { RequireServer.Check(); DropCollection(); var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)) { Unique = true } }; var subject = new CreateIndexesUsingInsertOperation(_collectionNamespace, requests, _messageEncoderSettings); ExecuteOperation(subject, async); var indexes = ListIndexes(); var index = indexes.Single(i => i["name"].AsString == "x_1"); index["unique"].ToBoolean().Should().BeTrue(); }
public void Execute_should_work_when_creating_two_indexes( [Values(false, true)] bool async) { RequireServer.Check(); DropCollection(); var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)), new CreateIndexRequest(new BsonDocument("y", 1)) }; var subject = new CreateIndexesUsingInsertOperation(_collectionNamespace, requests, _messageEncoderSettings); ExecuteOperation(subject, async); var indexes = ListIndexes(); indexes.Select(index => index["name"].AsString).Should().BeEquivalentTo(new[] { "_id_", "x_1", "y_1" }); }