Example #1
0
        public void When_Row_Is_Dynamic_Query_By_Key_Succeeds()
        {
            var query = new ViewQuery().
                        From("beer_ext", "all_beers").
                        Bucket("beer-sample").
                        Limit(1).
                        Development(false);;

            var client = new ViewClient(new HttpClient(),
                                        new JsonDataMapper(new ClientConfiguration()),
                                        new BucketConfig {
                Name = "beer-sample"
            },
                                        new ClientConfiguration());

            var result = client.Execute <Beer>(query);

            var query2 = new ViewQuery().
                         From("beer_ext", "all_beers").
                         Bucket("beer-sample").Key(result.Rows.First().Id);

            var result2 = client.Execute <Beer>(query2);

            Assert.AreEqual(result.Rows.First().Id, result2.Rows.First().Id);
        }
        public void When_Row_Is_Dynamic_Query_By_Key_Succeeds()
        {
            var query = new ViewQuery().
                From("beer_ext", "all_beers").
                Bucket("beer-sample").
                Limit(1).
                Development(false).
                BaseUri(_baseUri);

            var client = new ViewClient(new HttpClient(),
                new JsonDataMapper(new ClientConfiguration()),
                new BucketConfig { Name = "beer-sample" },
                new ClientConfiguration());

            var result = client.Execute<Beer>(query);

            var query2 = new ViewQuery().
                From("beer_ext", "all_beers").
                Bucket("beer-sample").
                Key(result.Rows.First().Id).
                BaseUri(_baseUri);

            var result2 = client.Execute<Beer>(query2);
            Assert.AreEqual(result.Rows.First().Id, result2.Rows.First().Id);
        }
Example #3
0
        /// <summary>
        /// Sends a request for a View to the server.
        /// </summary>
        /// <typeparam name="T">The <see cref="Type" /> T of the body for each row result.</typeparam>
        /// <param name="query">The <see cref="IViewQuery" /> representing the query.</param>
        /// <returns>
        /// An <see cref="IViewResult{T}" /> representing the result of the query.
        /// </returns>
        public IViewResult <T> Send <T>(IViewQueryable query)
        {
            IViewResult <T> result;

            try
            {
                query.BaseUri(CachedViewBaseUri);
                result = query.IsStreaming
                    ? _streamingViewClient.Execute <T>(query)
                    : ViewClient.Execute <T>(query);
            }
            catch (Exception e)
            {
                result = new ViewResult <T>
                {
                    Exception  = e,
                    Message    = e.Message,
                    Error      = e.Message,
                    Success    = false,
                    StatusCode = HttpStatusCode.BadRequest,
                    Rows       = new List <ViewRow <T> >()
                };
            }
            return(result);
        }
Example #4
0
        public void ViewClient_Submits_ViewQuery_Using_Post()
        {
            var keys         = Enumerable.Range(1, 10).Select(i => $"key-{i}").ToList();
            var expectedJson = JsonConvert.SerializeObject(new
            {
                keys
            }, Formatting.None);

            var handler = FakeHttpMessageHandler.Create(request =>
            {
                // verify request was a post
                Assert.AreEqual(HttpMethod.Post, request.Method);

                // get the post body and verify content
                var content = request.Content.ReadAsStringAsync().Result;
                Assert.AreEqual(expectedJson, content);

                // return empty json response
                return(new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new StringContent("{ }")
                });
            });

            var httpClient  = new HttpClient(handler);
            var queryClient = new ViewClient(httpClient, new JsonDataMapper(new DefaultSerializer()));

            var query = new ViewQuery("bucket-name", "http://localhost");

            query.Keys(keys);

            var result = queryClient.Execute <dynamic>(query);

            Assert.IsTrue(result.Success);
        }
Example #5
0
        public void When_Poco_Is_Supplied_Map_Results_To_It()
        {
            var query = new ViewQuery().
                        From("beer_ext", "all_beers").
                        Bucket("beer-sample").
                        Limit(10).
                        Development(false);

            var client = new ViewClient(new HttpClient(),
                                        new JsonDataMapper(new ClientConfiguration()),
                                        new BucketConfig {
                Name = "beer-sample"
            },
                                        new ClientConfiguration());

            var result = client.Execute <Beer>(query);

            foreach (var viewRow in result.Rows)
            {
                Assert.IsNotNull(viewRow.Id);
            }
            Console.WriteLine(result.Error);
            Assert.IsNotNull(result.Rows);
            Assert.IsTrue(result.Success);
            Assert.AreEqual(result.Rows.Count(), result.Values.Count());
        }
        public void When_Query_Is_Succesful_Rows_Are_Returned()
        {
            var query = new ViewQuery(false).
                From("beer-sample", "beer").
                View("brewery_beers");

            var client = new ViewClient(new HttpClient(), new JsonDataMapper());
            var result = client.Execute<dynamic>(query);
            Assert.IsNotNull(result.Rows);
            Assert.AreEqual(result.StatusCode, HttpStatusCode.OK);
        }
Example #7
0
        public void When_Query_Is_Succesful_Rows_Are_Returned()
        {
            var query = new ViewQuery(false).
                        From("beer-sample", "beer").
                        View("brewery_beers");

            var client = new ViewClient(new HttpClient(), new JsonDataMapper());
            var result = client.Execute <dynamic>(query);

            Assert.IsNotNull(result.Rows);
            Assert.AreEqual(result.StatusCode, HttpStatusCode.OK);
        }
        public void When_Url_Is_Invalid_WebException_Is_Returned()
        {
            var query = new ViewQuery(false).
                From("beer-sample", "beer").
                View("brewery_beers").
                BaseUri("http://192.168.56.105:8092/");

            var client = new ViewClient(new HttpClient(), new JsonDataMapper());
            var result = client.Execute<dynamic>(query);
            Assert.IsNotNull(result.Rows);
            Assert.IsFalse(result.Success);
            Assert.AreEqual(HttpStatusCode.ServiceUnavailable, result.StatusCode);
            Assert.AreEqual(typeof(HttpRequestException), result.Exception.GetType());
        }
        public void When_View_Is_Not_Found_404_Is_Returned()
        {
            var query = new ViewQuery(false).
                From("beer-sample", "beer").
                View("view_that_does_not_exist");

            var client = new ViewClient(new HttpClient(), new JsonDataMapper());
            var result = client.Execute<dynamic>(query);
            
            Assert.IsNotNull(result.Message);
            Assert.AreEqual(HttpStatusCode.NotFound, result.StatusCode);
            Assert.IsFalse(result.Success);

            Console.WriteLine(result.Message);
        }
Example #10
0
        public void When_Url_Is_Invalid_WebException_Is_Returned()
        {
            var query = new ViewQuery(false).
                        From("beer-sample", "beer").
                        View("brewery_beers").
                        BaseUri("http://192.168.56.105:8092/");

            var client = new ViewClient(new HttpClient(), new JsonDataMapper());
            var result = client.Execute <dynamic>(query);

            Assert.IsNotNull(result.Rows);
            Assert.IsFalse(result.Success);
            Assert.AreEqual(HttpStatusCode.ServiceUnavailable, result.StatusCode);
            Assert.AreEqual(typeof(HttpRequestException), result.Exception.GetType());
        }
Example #11
0
        public void When_View_Is_Not_Found_404_Is_Returned()
        {
            var query = new ViewQuery(false).
                        From("beer-sample", "beer").
                        View("view_that_does_not_exist");

            var client = new ViewClient(new HttpClient(), new JsonDataMapper());
            var result = client.Execute <dynamic>(query);

            Assert.IsNotNull(result.Message);
            Assert.AreEqual(HttpStatusCode.NotFound, result.StatusCode);
            Assert.IsFalse(result.Success);

            Console.WriteLine(result.Message);
        }
Example #12
0
        public void When_View_Is_Called_With_Invalid_Parameters_Error_Is_Returned()
        {
            var query = new ViewQuery(false).
                        From("beer-sample", "beer").
                        View("brewery_beers").
                        Group(true);

            var client = new ViewClient(new HttpClient(), new JsonDataMapper());
            var result = client.Execute <dynamic>(query);

            Assert.AreEqual("query_parse_error", result.Error);
            Assert.AreEqual("Invalid URL parameter 'group' or  'group_level' for non-reduce view.", result.Message);
            Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode);
            Assert.IsFalse(result.Success);

            Console.WriteLine(result.Message);
        }
        public void When_View_Is_Called_With_Invalid_Parameters_Error_Is_Returned()
        {
            var query = new ViewQuery(false).
                From("beer-sample", "beer").
                View("brewery_beers").
                Group(true);

            var client = new ViewClient(new HttpClient(), new JsonDataMapper());
            var result = client.Execute<dynamic>(query);
            
            Assert.AreEqual("query_parse_error", result.Error);
            Assert.AreEqual("Invalid URL parameter 'group' or  'group_level' for non-reduce view.", result.Message);
            Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode);
            Assert.IsFalse(result.Success);

            Console.WriteLine(result.Message);
        }
Example #14
0
        public void When_Query_Is_Succesful_Rows_Are_Returned()
        {
            var query = new ViewQuery().
                        From("beer", "brewery_beers").
                        Bucket("beer-sample");

            var client = new ViewClient(new HttpClient(),
                                        new JsonDataMapper(new ClientConfiguration()),
                                        new BucketConfig {
                Name = "beer-sample"
            },
                                        new ClientConfiguration());

            var result = client.Execute <dynamic>(query);

            Assert.IsNotNull(result.Rows);
            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
        }
        public void When_Query_Is_Succesful_Rows_Are_Returned()
        {
            var query = new ViewQuery().
                From("beer", "brewery_beers").
                Bucket("beer-sample").
                Limit(10);

            var client = new ViewClient(new HttpClient(),
                new JsonDataMapper(new ClientConfiguration()),
                new BucketConfig { Name = "beer-sample" },
                new ClientConfiguration());

            var result = client.Execute<dynamic>(query);
            Assert.IsNotNull(result.Rows);
            foreach (var viewRow in result.Rows)
            {
                Assert.IsNotNull(viewRow.Id);
            }
            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
        }
        public void When_Poco_Is_Supplied_Map_Results_To_It()
        {
            var query = new ViewQuery().
              From("beer", "all_beers").
              Bucket("beer-sample").Limit(10);

            var client = new ViewClient(new HttpClient(),
                new JsonDataMapper(new ClientConfiguration()),
                new BucketConfig { Name = "beer-sample" },
                new ClientConfiguration());

            var result = client.Execute<Beer>(query);
            foreach (var viewRow in result.Rows)
            {
                Assert.IsNotNull(viewRow.Id);
            }
            Console.WriteLine(result.Error);
            Assert.IsNotNull(result.Rows);
            Assert.IsTrue(result.Success);
            Assert.AreEqual(result.Rows.Count(), result.Values.Count());
        }
        public void When_View_Is_Not_Found_404_Is_Returned()
        {
            var query = new ViewQuery().
                        From("beer", "view_that_does_not_exist").
                        Bucket("beer-sample").
                        BaseUri(_baseUri);

            var client = new ViewClient(new HttpClient(),
                                        new JsonDataMapper(new ClientConfiguration()),
                                        new BucketConfig {
                Name = "beer-sample"
            },
                                        new ClientConfiguration());

            var result = client.Execute <dynamic>(query);

            Assert.IsNotNull(result.Message);
            Assert.AreEqual(HttpStatusCode.NotFound, result.StatusCode);
            Assert.IsFalse(result.Success);

            Console.WriteLine(result.Message);
        }
Example #18
0
        public void Execute_Sets_LastActivity()
        {
            var handler = FakeHttpMessageHandler.Create(request => new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent("{ }")
            });

            var httpClient  = new HttpClient(handler);
            var queryClient = new ViewClient(httpClient,
                                             new JsonDataMapper(new DefaultSerializer()),
                                             new ClusterOptions());

            Assert.Null(queryClient.LastActivity);

            var query = new ViewQuery("bucket-name", "http://localhost");

            query.Keys("test-key");
            query.UseStreaming(true);

            queryClient.Execute <dynamic>(query);
            Assert.NotNull(queryClient.LastActivity);
        }
Example #19
0
        public void When_View_Is_Called_With_Invalid_Parameters_Error_Is_Returned()
        {
            var query = new ViewQuery().
                        From("beer", "brewery_beers").
                        Bucket("beer-sample").
                        Group(true);

            var client = new ViewClient(new HttpClient(),
                                        new JsonDataMapper(new ClientConfiguration()),
                                        new BucketConfig {
                Name = "beer-sample"
            },
                                        new ClientConfiguration());

            var result = client.Execute <dynamic>(query);

            Assert.AreEqual("query_parse_error", result.Error);
            Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode);
            Assert.IsFalse(result.Success);

            Console.WriteLine(result.Message);
        }
        public void Test_Geo_Spatial_View()
        {
            var uriString = ClientConfigUtil.GetConfiguration().Servers.First().ToString();

            uriString = uriString.Replace("8091", "8092").Replace("pools", "travel-sample/");

            var query = new SpatialViewQuery().From("spatial", "routes")
                        .Stale(StaleState.False)
                        .Limit(10)
                        .Skip(0)
                        .BaseUri(new Uri(uriString));

            var client = new ViewClient(new HttpClient(),
                                        new JsonDataMapper(ClientConfigUtil.GetConfiguration()),
                                        new BucketConfig {
                Name = "travel-sample"
            },
                                        new ClientConfiguration());

            var results = client.Execute <dynamic>(query);

            Assert.IsTrue(results.Success, results.Error);
        }
Example #21
0
        public void When_Url_Is_Invalid_WebException_Is_Returned_2()
        {
            var query = new ViewQuery().
                        From("beer", "brewery_beers").
                        Bucket("beer-sample").
                        BaseUri("http://192.168.62.200:8092/");

            var client = new ViewClient(new HttpClient(),
                                        new JsonDataMapper(new ClientConfiguration()),
                                        new BucketConfig {
                Name = "beer-sample"
            },
                                        new ClientConfiguration {
                ViewRequestTimeout = 5000
            });

            var result = client.Execute <dynamic>(query);

            Assert.IsNotNull(result.Rows);
            Assert.IsFalse(result.Success);
            Assert.AreEqual(HttpStatusCode.ServiceUnavailable, result.StatusCode);
            Assert.AreEqual(typeof(WebException), result.Exception.GetType());
        }
        public void Test_Geo_Spatial_View()
        {
            var query = new SpatialViewQuery().From("spatial", "routes")
                .BaseUri(ClientConfigUtil.GetConfiguration().Servers.First().ToString())
                .Bucket("travel-sample")
                .Stale(StaleState.False)
                .Limit(10)
                .Skip(0);

             var client = new ViewClient(new HttpClient(),
                new JsonDataMapper(ClientConfigUtil.GetConfiguration()),
                new BucketConfig { Name = "travel-sample" },
                new ClientConfiguration());

            var results = client.Execute<dynamic>(query);
            Assert.IsTrue(results.Success, results.Error);

        }
        public void When_View_Is_Not_Found_404_Is_Returned()
        {
            var query = new ViewQuery().
                From("beer", "view_that_does_not_exist").
                Bucket("beer-sample").
                BaseUri(_baseUri);

            var client = new ViewClient(new HttpClient(),
                new JsonDataMapper(new ClientConfiguration()),
                new BucketConfig { Name = "beer-sample" },
                new ClientConfiguration());

            var result = client.Execute<dynamic>(query);

            Assert.IsNotNull(result.Message);
            Assert.AreEqual(HttpStatusCode.NotFound, result.StatusCode);
            Assert.IsFalse(result.Success);

            Console.WriteLine(result.Message);
        }
        public void When_View_Is_Called_With_Invalid_Parameters_Error_Is_Returned()
        {
            var query = new ViewQuery().
                From("beer", "brewery_beers").
                Bucket("beer-sample").
                Group(true);

            var client = new ViewClient(new HttpClient(),
                new JsonDataMapper(new ClientConfiguration()),
                new BucketConfig { Name = "beer-sample" },
                new ClientConfiguration());

            var result = client.Execute<dynamic>(query);

            Assert.AreEqual("query_parse_error", result.Error);
            Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode);
            Assert.IsFalse(result.Success);

            Console.WriteLine(result.Message);
        }
        public void When_Url_Is_Invalid_WebException_Is_Returned_2()
        {
            var query = new ViewQuery().
                From("beer", "brewery_beers").
                Bucket("beer-sample").
                BaseUri("http://192.168.62.200:8092/");

            var client = new ViewClient(new HttpClient(),
                new JsonDataMapper(new ClientConfiguration()),
                new BucketConfig { Name = "beer-sample" },
                new ClientConfiguration{ViewRequestTimeout = 5000});

            var result = client.Execute<dynamic>(query);
            Assert.IsNotNull(result.Rows);
            Assert.IsFalse(result.Success);
            Assert.AreEqual(HttpStatusCode.ServiceUnavailable, result.StatusCode);
            Assert.AreEqual(typeof(WebException), result.Exception.GetType());
        }