Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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");
        }
Example #4
0
        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);
        }
Example #5
0
        public void Execute_should_work_when_creating_one_index(
            [Values(false, true)]
            bool async)
        {
            RequireServer.Check();
            DropCollection();
            var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 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" });
        }
Example #6
0
        public void Execute_should_work_when_background_is_true(
            [Values(false, true)]
            bool async)
        {
            RequireServer.Check();
            DropCollection();
            var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1))
                                   {
                                       Background = 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["background"].ToBoolean().Should().BeTrue();
        }
Example #7
0
        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);
        }
Example #8
0
        public void Execute_should_work_when_creating_two_indexes(
            [Values(false, true)]
            bool async)
        {
            var requests = new[]
            {
                new CreateIndexRequest(new BsonDocument("x", 1)),
                new CreateIndexRequest(new BsonDocument("y", 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", "y_1" });
        }
Example #9
0
        public void Execute_should_work_when_unique_is_true(
            [Values(false, true)]
            bool async)
        {
            var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1))
                                   {
                                       Unique = 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["unique"].ToBoolean().Should().BeTrue();
        }
Example #10
0
        public void Execute_should_work_when_expireAfter_has_value(
            [Values(false, true)]
            bool async)
        {
            RequireServer.Check();
            DropCollection();
            var expireAfter = TimeSpan.FromSeconds(1.5);
            var requests    = new[] { new CreateIndexRequest(new BsonDocument("x", 1))
                                      {
                                          ExpireAfter = expireAfter
                                      } };
            var subject = new CreateIndexesUsingInsertOperation(_collectionNamespace, requests, _messageEncoderSettings);

            ExecuteOperation(subject, async);

            var indexes = ListIndexes();
            var index   = indexes.Single(i => i["name"].AsString == "x_1");

            index["expireAfterSeconds"].ToDouble().Should().Be(expireAfter.TotalSeconds);
        }