Inheritance: Couchbase.Management.BucketManager
Esempio n. 1
0
        public async Task WatchIndexesAsync_Retries_Until_Indexes_Are_Online()
        {
            var attempts = 0;

            var mockBucket = new Mock <IBucket>();

            mockBucket.Setup(x => x.Name).Returns("default");
            mockBucket.Setup(x => x.QueryAsync <IndexInfo>(It.IsAny <QueryRequest>()))
            .Returns(() => Task.FromResult((IQueryResult <IndexInfo>) new QueryResult <IndexInfo>
            {
                Success = true,
                Rows    = new List <IndexInfo>
                {
                    new IndexInfo {
                        Name = "foo", State = attempts++ < 2 ? "pending" : "online"
                    }
                }
            }));

            var indexNamesToWatch = new List <string> {
                "foo"
            };

            var manager = new TestableBucketManager(mockBucket.Object);
            var result  = await manager.WatchN1qlIndexesAsync(indexNamesToWatch, TimeSpan.FromSeconds(20));

            Assert.IsTrue(result.Success);
            Assert.AreEqual(1, result.Value.Count);
            Assert.AreEqual("foo", result.Value.First().Name);
            Assert.AreEqual("online", result.Value.First().State);

            mockBucket.Verify(x => x.QueryAsync <IndexInfo>(It.IsAny <QueryRequest>()), Times.Exactly(3));
        }
Esempio n. 2
0
        public void WatchIndexes_Returns_If_No_Matching_Indexes_Found()
        {
            var mockBucket = new Mock <IBucket>();

            mockBucket.Setup(x => x.Name).Returns("default");
            mockBucket.Setup(x => x.Query <IndexInfo>(It.IsAny <QueryRequest>()))
            .Returns(new QueryResult <IndexInfo>
            {
                Success = true,
                Rows    = new List <IndexInfo>
                {
                    new IndexInfo {
                        Name = "bar", State = "pending"
                    }
                }
            });

            var indexNamesToWatch = new List <string> {
                "foo"
            };

            var manager = new TestableBucketManager(mockBucket.Object);
            var result  = manager.WatchN1qlIndexes(indexNamesToWatch, TimeSpan.FromSeconds(1));

            Assert.IsTrue(result.Success);
            Assert.AreEqual(1, result.Value.Count);
            Assert.AreEqual("bar", result.Value.First().Name);
            Assert.AreEqual("pending", result.Value.First().State);

            mockBucket.Verify(x => x.Query <IndexInfo>(It.IsAny <QueryRequest>()), Times.Exactly(1));
        }
Esempio n. 3
0
        public async Task WatchIndexesAsync_Retries_Until_Timeout_And_Returns_Last_Result()
        {
            var mockBucket = new Mock <IBucket>();

            mockBucket.Setup(x => x.Name).Returns("default");
            mockBucket.Setup(x => x.QueryAsync <IndexInfo>(It.IsAny <QueryRequest>()))
            .ReturnsAsync(new QueryResult <IndexInfo>
            {
                Success = true,
                Rows    = new List <IndexInfo>
                {
                    new IndexInfo {
                        Name = "foo", State = "pending"
                    }
                }
            });

            var indexNamesToWatch = new List <string> {
                "foo"
            };

            var manager = new TestableBucketManager(mockBucket.Object);
            var result  = await manager.WatchN1qlIndexesAsync(indexNamesToWatch, TimeSpan.FromSeconds(1));

            Assert.IsTrue(result.Success);
            Assert.AreEqual(1, result.Value.Count);
            Assert.AreEqual("foo", result.Value.First().Name);
            Assert.AreEqual("pending", result.Value.First().State);

            mockBucket.Verify(x => x.QueryAsync <IndexInfo>(It.IsAny <QueryRequest>()), Times.AtLeastOnce);
        }
        public void DropIndex_WhenNamed_ReturnsValidStatement()
        {
            //arange
            var mockBucket = new Mock<IBucket>();
            mockBucket.Setup(x => x.Name).Returns("beer-sample");
            var bucketManager = new TestableBucketManager(mockBucket.Object);
            var expectedStatement = "DROP INDEX `beer-sample`.`theName` USING GSI;";

            //act
            var result = (DefaultResult<string>)bucketManager.DropN1qlIndex("theName");

            //assert
            Assert.AreEqual(expectedStatement, result.Value);
        }
Esempio n. 5
0
        public async void DropIndexAsync_WhenNamed_ReturnsValidStatement()
        {
            //arange
            var mockBucket = new Mock <IBucket>();

            mockBucket.Setup(x => x.Name).Returns("beer-sample");
            var bucketManager     = new TestableBucketManager(mockBucket.Object);
            var expectedStatement = "DROP INDEX `beer-sample`.`theName` USING GSI;";

            //act
            var result = (DefaultResult <string>) await bucketManager.DropIndexAsync("theName");

            //assert
            Assert.AreEqual(expectedStatement, result.Value);
        }
Esempio n. 6
0
        public async void CreateIndexAsync_WhenNamedAndManyFields_ReturnsValidStatement()
        {
            //arange
            var mockBucket = new Mock <IBucket>();

            mockBucket.Setup(x => x.Name).Returns("beer-sample");
            var bucketManager     = new TestableBucketManager(mockBucket.Object);
            var expectedStatement = "CREATE INDEX `theName` ON `beer-sample`(`name`, `id`) USING GSI WITH {\"defer_build\":false};";

            //act
            var result = (DefaultResult <string>) await bucketManager.CreateIndexAsync("theName", false, "name", "id");

            //assert
            Assert.AreEqual(expectedStatement, result.Value);
        }
Esempio n. 7
0
        public async void DropPrimaryIndexAsync_ReturnsValidStatement()
        {
            //arange
            var mockBucket = new Mock <IBucket>();

            mockBucket.Setup(x => x.Name).Returns("beer-sample");
            var bucketManager     = new TestableBucketManager(mockBucket.Object);
            var expectedStatement = "DROP PRIMARY INDEX ON `beer-sample` USING GSI;";

            //act
            var result = await bucketManager.DropPrimaryIndexAsync();

            //assert
            Assert.AreEqual(expectedStatement, ((DefaultResult <string>)result).Value);
        }
Esempio n. 8
0
        public void CreateIndex_WhenNamedAndDefer_ReturnsValidStatement()
        {
            //arange
            var mockBucket = new Mock <IBucket>();

            mockBucket.Setup(x => x.Name).Returns("beer-sample");
            var bucketManager     = new TestableBucketManager(mockBucket.Object);
            var expectedStatement = "CREATE INDEX `theName` ON `beer-sample`(`name`) USING GSI WITH {\"defer_build\":true};";

            //act
            var result = (DefaultResult <string>)bucketManager.CreateN1qlIndex("theName", true, "name");

            //assert
            Assert.AreEqual(expectedStatement, result.Value);
        }
Esempio n. 9
0
        public async void CreatePrimaryIndexAsync_WithDeferTrue_ReturnsValidStatement()
        {
            //arange
            var mockBucket = new Mock <IBucket>();

            mockBucket.Setup(x => x.Name).Returns("beer-sample");
            var bucketManager     = new TestableBucketManager(mockBucket.Object);
            var expectedStatement = "CREATE PRIMARY INDEX ON `beer-sample` USING GSI WITH {\"defer_build\":true};";

            //act
            var result = (DefaultResult <string>) await bucketManager.CreatePrimaryIndexAsync(true);

            //assert
            Assert.AreEqual(expectedStatement, result.Value);
        }
Esempio n. 10
0
        public void CreateNamedPrimaryIndex_WithDeferFalse_ReturnsValidStatement()
        {
            //arange
            var mockBucket = new Mock <IBucket>();

            mockBucket.Setup(x => x.Name).Returns("beer-sample");
            var bucketManager     = new TestableBucketManager(mockBucket.Object);
            var expectedStatement = "CREATE PRIMARY INDEX `my_idx` ON `beer-sample` USING GSI WITH {\"defer_build\":false};";

            //act
            var result = (DefaultResult <string>)bucketManager.CreateN1qlPrimaryIndex("my_idx");

            //assert
            Assert.AreEqual(expectedStatement, result.Value);
        }
Esempio n. 11
0
        public async Task WatchIndexesAsync_Returns_When_Qeury_Failed()
        {
            var mockBucket = new Mock <IBucket>();

            mockBucket.Setup(x => x.Name).Returns("default");
            mockBucket.Setup(x => x.QueryAsync <IndexInfo>(It.IsAny <QueryRequest>()))
            .ReturnsAsync(new QueryResult <IndexInfo>
            {
                Success = false
            });

            var indexNamesToWatch = new List <string> {
                "foo"
            };

            var manager = new TestableBucketManager(mockBucket.Object);
            var result  = await manager.WatchN1qlIndexesAsync(indexNamesToWatch, TimeSpan.FromSeconds(20));

            Assert.IsFalse(result.Success);
            Assert.AreEqual(0, result.Value.Count);

            mockBucket.Verify(x => x.QueryAsync <IndexInfo>(It.IsAny <QueryRequest>()), Times.Exactly(1));
        }
        public void WatchIndexes_Returns_If_No_Matching_Indexes_Found()
        {
            var mockBucket = new Mock<IBucket>();
            mockBucket.Setup(x => x.Name).Returns("default");
            mockBucket.Setup(x => x.Query<IndexInfo>(It.IsAny<QueryRequest>()))
                .Returns(new QueryResult<IndexInfo>
                {
                    Success = true,
                    Rows = new List<IndexInfo>
                    {
                        new IndexInfo {Name = "bar", State = "pending"}
                    }
                });

            var indexNamesToWatch = new List<string> { "foo" };

            var manager = new TestableBucketManager(mockBucket.Object);
            var result = manager.WatchN1qlIndexes(indexNamesToWatch, TimeSpan.FromSeconds(1));

            Assert.IsTrue(result.Success);
            Assert.AreEqual(1, result.Value.Count);
            Assert.AreEqual("bar", result.Value.First().Name);
            Assert.AreEqual("pending", result.Value.First().State);

            mockBucket.Verify(x => x.Query<IndexInfo>(It.IsAny<QueryRequest>()), Times.Exactly(1));
        }
        public async Task WatchIndexesAsync_Returns_When_Qeury_Failed()
        {
            var mockBucket = new Mock<IBucket>();
            mockBucket.Setup(x => x.Name).Returns("default");
            mockBucket.Setup(x => x.QueryAsync<IndexInfo>(It.IsAny<QueryRequest>()))
                .ReturnsAsync(new QueryResult<IndexInfo>
                {
                    Success = false
                });

            var indexNamesToWatch = new List<string> { "foo" };

            var manager = new TestableBucketManager(mockBucket.Object);
            var result = await manager.WatchN1qlIndexesAsync(indexNamesToWatch, TimeSpan.FromSeconds(20));

            Assert.IsFalse(result.Success);
            Assert.AreEqual(0, result.Value.Count);

            mockBucket.Verify(x => x.QueryAsync<IndexInfo>(It.IsAny<QueryRequest>()), Times.Exactly(1));
        }
        public async Task WatchIndexesAsync_Retries_Until_Timeout_And_Returns_Last_Result()
        {
            var mockBucket = new Mock<IBucket>();
            mockBucket.Setup(x => x.Name).Returns("default");
            mockBucket.Setup(x => x.QueryAsync<IndexInfo>(It.IsAny<QueryRequest>()))
                .ReturnsAsync(new QueryResult<IndexInfo>
                {
                    Success = true,
                    Rows = new List<IndexInfo>
                    {
                        new IndexInfo {Name = "foo", State = "pending"}
                    }
                });

            var indexNamesToWatch = new List<string> { "foo" };

            var manager = new TestableBucketManager(mockBucket.Object);
            var result = await manager.WatchN1qlIndexesAsync(indexNamesToWatch, TimeSpan.FromSeconds(1));

            Assert.IsTrue(result.Success);
            Assert.AreEqual(1, result.Value.Count);
            Assert.AreEqual("foo", result.Value.First().Name);
            Assert.AreEqual("pending", result.Value.First().State);

            mockBucket.Verify(x => x.QueryAsync<IndexInfo>(It.IsAny<QueryRequest>()), Times.AtLeastOnce);
        }
        public void CreateNamedPrimaryIndex_WithDeferFalse_ReturnsValidStatement()
        {
            //arange
            var mockBucket = new Mock<IBucket>();
            mockBucket.Setup(x => x.Name).Returns("beer-sample");
            var bucketManager = new TestableBucketManager(mockBucket.Object);
            var expectedStatement = "CREATE PRIMARY INDEX `my_idx` ON `beer-sample` USING GSI WITH {\"defer_build\":false};";

            //act
            var result = (DefaultResult<string>)bucketManager.CreateN1qlPrimaryIndex("my_idx");

            //assert
            Assert.AreEqual(expectedStatement, result.Value);
        }
        public async Task WatchIndexesAsync_Retries_Until_Indexes_Are_Online()
        {
            var attempts = 0;

            var mockBucket = new Mock<IBucket>();
            mockBucket.Setup(x => x.Name).Returns("default");
            mockBucket.Setup(x => x.QueryAsync<IndexInfo>(It.IsAny<QueryRequest>()))
                .Returns(() => Task.FromResult((IQueryResult<IndexInfo>) new QueryResult<IndexInfo>
                {
                    Success = true,
                    Rows = new List<IndexInfo>
                    {
                        new IndexInfo {Name = "foo", State = attempts++ < 2 ? "pending" : "online"}
                    }
                }));

            var indexNamesToWatch = new List<string> { "foo" };

            var manager = new TestableBucketManager(mockBucket.Object);
            var result = await manager.WatchN1qlIndexesAsync(indexNamesToWatch, TimeSpan.FromSeconds(20));

            Assert.IsTrue(result.Success);
            Assert.AreEqual(1, result.Value.Count);
            Assert.AreEqual("foo", result.Value.First().Name);
            Assert.AreEqual("online", result.Value.First().State);

            mockBucket.Verify(x => x.QueryAsync<IndexInfo>(It.IsAny<QueryRequest>()), Times.Exactly(3));
        }
        public async Task DropPrimaryIndexAsync_ReturnsValidStatement()
        {
            //arange
            var mockBucket = new Mock<IBucket>();
            mockBucket.Setup(x => x.Name).Returns("beer-sample");
            var bucketManager = new TestableBucketManager(mockBucket.Object);
            var expectedStatement = "DROP PRIMARY INDEX ON `beer-sample` USING GSI;";

            //act
            var result = await bucketManager.DropN1qlPrimaryIndexAsync();

            //assert
            Assert.AreEqual(expectedStatement, ((DefaultResult<string>)result).Value);
        }
        public async Task DropNamedPrimaryIndexAsync_WhenNamedAndManyFields_ReturnsValidStatement()
        {
            //arange
            var mockBucket = new Mock<IBucket>();
            mockBucket.Setup(x => x.Name).Returns("beer-sample");
            var bucketManager = new TestableBucketManager(mockBucket.Object);
            var expectedStatement = "DROP INDEX `beer-sample`.`theName` USING GSI;";

            //act
            var result = (DefaultResult<string>) await bucketManager.DropNamedPrimaryIndexAsync("theName");

            //assert
            Assert.AreEqual(expectedStatement, result.Value);
        }
        public async Task CreateIndexAsync_WhenNamedAndManyFields_ReturnsValidStatement()
        {
            //arange
            var mockBucket = new Mock<IBucket>();
            mockBucket.Setup(x => x.Name).Returns("beer-sample");
            var bucketManager = new TestableBucketManager(mockBucket.Object);
            var expectedStatement = "CREATE INDEX `theName` ON `beer-sample`(`name`, `id`) USING GSI WITH {\"defer_build\":false};";

            //act
            var result = (DefaultResult<string>) await bucketManager.CreateN1qlIndexAsync("theName", false, "name", "id");

            //assert
            Assert.AreEqual(expectedStatement, result.Value);
        }
        public void CreateIndex_WhenNamedAndDefer_ReturnsValidStatement()
        {
            //arange
            var mockBucket = new Mock<IBucket>();
            mockBucket.Setup(x => x.Name).Returns("beer-sample");
            var bucketManager = new TestableBucketManager(mockBucket.Object);
            var expectedStatement = "CREATE INDEX `theName` ON `beer-sample`(`name`) USING GSI WITH {\"defer_build\":true};";

            //act
            var result = (DefaultResult<string>)bucketManager.CreateN1qlIndex("theName", true, "name");

            //assert
            Assert.AreEqual(expectedStatement, result.Value);
        }
        public async Task CreatePrimaryIndexAsync_WithDeferTrue_ReturnsValidStatement()
        {
            //arange
            var mockBucket = new Mock<IBucket>();
            mockBucket.Setup(x => x.Name).Returns("beer-sample");
            var bucketManager = new TestableBucketManager(mockBucket.Object);
            var expectedStatement = "CREATE PRIMARY INDEX ON `beer-sample` USING GSI WITH {\"defer_build\":true};";

            //act
            var result = (DefaultResult<string>) await bucketManager.CreateN1qlPrimaryIndexAsync(true);

            //assert
            Assert.AreEqual(expectedStatement, result.Value);
        }