Ejemplo n.º 1
0
        public void Can_query_show_that_can_work_without_doc_id()
        {
            var query = new QueryShowRequest(ClientTestData.Shows.ArtistsHelloShowId);

            var response = SUT.ShowAsync(query).Result;

            response.Should().BeGetOfHtml();
        }
Ejemplo n.º 2
0
        public virtual async Task <RawResponse> ShowAsync(QueryShowRequest request, CancellationToken cancellationToken = default)
        {
            var httpRequest = QueryShowHttpRequestFactory.Create(request);

            using (var res = await SendAsync(httpRequest, cancellationToken).ForAwait())
            {
                return(await RawResponseFactory.CreateAsync(res).ForAwait());
            }
        }
Ejemplo n.º 3
0
        public void When_docId_is_specified_Then_It_should_generate_a_relative_url()
        {
            var request = new QueryShowRequest("my_design_doc", "my_show");

            request.DocId = "my_doc_id";
            var r = SUT.Create(request);

            r.RelativeUrl.Should().Be("/_design/my_design_doc/_show/my_show/my_doc_id");
        }
Ejemplo n.º 4
0
        protected virtual IDictionary<string, string> GenerateJsonCompatibleKeyValues(QueryShowRequest request)
        {
            var kvs = new Dictionary<string, string>();

            if (request.HasCustomQueryParameters)
                foreach (var param in request.CustomQueryParameters)
                    kvs.Add(param.Key, param.Value.ToStringExtended());

            return kvs;
        }
Ejemplo n.º 5
0
        public void When_querying_show_that_transforms_doc_to_json_It_should_return_json()
        {
            var artist = ArtistsById.First();
            var query  = new QueryShowRequest(ClientTestData.Shows.ArtistsJsonShowId).Configure(c => c.DocId(artist.ArtistId));

            var response = SUT.ShowAsync(query).Result;

            response.Should().BeGetOfJson();
            var transformedArtist = DbClient.Entities.Serializer.Deserialize <dynamic>(response.Content);

            ((string)transformedArtist.name).Should().Be(artist.Name);
        }
Ejemplo n.º 6
0
 protected virtual string GenerateRelativeUrl(QueryShowRequest request)
 {
     if(!string.IsNullOrWhiteSpace(request.DocId))
         return string.Format("/_design/{0}/_show/{1}/{2}{3}",
             new UrlSegment(request.ShowIdentity.DesignDocument),
             new UrlSegment(request.ShowIdentity.Name),
             new UrlSegment(request.DocId),
             GenerateRequestUrlQueryString(request));
     else
         return string.Format("/_design/{0}/_show/{1}{2}",
             new UrlSegment(request.ShowIdentity.DesignDocument),
             new UrlSegment(request.ShowIdentity.Name),
             GenerateRequestUrlQueryString(request));
 }
Ejemplo n.º 7
0
        public virtual HttpRequest Create(QueryShowRequest request)
        {
            Ensure.That(request, "request").IsNotNull();

            var httpRequest = new HttpRequest(HttpMethod.Get, GenerateRelativeUrl(request));

            httpRequest.SetRequestTypeHeader(request.GetType());

            if (request.HasAccepts)
                httpRequest.SetAcceptHeader(request.Accepts);
            else
                httpRequest.SetAcceptHeader(HttpContentTypes.Json, HttpContentTypes.Html);

            return httpRequest;
        }
Ejemplo n.º 8
0
        public void When_querying_show_that_transforms_doc_to_xml_It_should_return_xml()
        {
            var artist = ArtistsById.First();
            var query  = new QueryShowRequest(ClientTestData.Shows.ArtistsXmlShowId)
                         .Configure(c => c.DocId(artist.ArtistId)
                                    .Accepts(HttpContentTypes.Xml)
                                    );

            var response = SUT.ShowAsync(query).Result;

            response.Should().BeGetOfXml();
            var transformedArtist = XElement.Parse(response.Content);

            transformedArtist.Value.Should().Be(artist.Name);
        }
Ejemplo n.º 9
0
 protected virtual string GenerateRelativeUrl(QueryShowRequest request)
 {
     if (!string.IsNullOrWhiteSpace(request.DocId))
     {
         return(string.Format("/_design/{0}/_show/{1}/{2}{3}",
                              new UrlSegment(request.ShowIdentity.DesignDocument),
                              new UrlSegment(request.ShowIdentity.Name),
                              new UrlSegment(request.DocId),
                              GenerateRequestUrlQueryString(request)));
     }
     else
     {
         return(string.Format("/_design/{0}/_show/{1}{2}",
                              new UrlSegment(request.ShowIdentity.DesignDocument),
                              new UrlSegment(request.ShowIdentity.Name),
                              GenerateRequestUrlQueryString(request)));
     }
 }
Ejemplo n.º 10
0
        public virtual HttpRequest Create(QueryShowRequest request)
        {
            Ensure.That(request, "request").IsNotNull();

            var httpRequest = new HttpRequest(HttpMethod.Get, GenerateRelativeUrl(request));

            httpRequest.SetRequestTypeHeader(request.GetType());

            if (request.HasAccepts)
            {
                httpRequest.SetAcceptHeader(request.Accepts);
            }
            else
            {
                httpRequest.SetAcceptHeader(HttpContentTypes.Json, HttpContentTypes.Html);
            }

            return(httpRequest);
        }
Ejemplo n.º 11
0
        public void Can_send_custom_query_parameters_to_show()
        {
            var artist            = ArtistsById.First();
            var customQueryParams = new Dictionary <string, object>();

            customQueryParams.Add("foo", 42);
            var query = new QueryShowRequest(ClientTestData.Shows.ArtistsJsonShowWithCustomQueryParamId)
                        .Configure(c => c.DocId(artist.ArtistId)
                                   .CustomQueryParameters(customQueryParams)
                                   );

            var response = SUT.ShowAsync(query).Result;

            response.Should().BeGetOfJson();
            var transformedArtist = DbClient.Entities.Serializer.Deserialize <dynamic>(response.Content);

            ((string)transformedArtist.name).Should().Be(artist.Name);
            ((string)transformedArtist.foo).Should().Be("42");
        }
Ejemplo n.º 12
0
        protected virtual string GenerateRequestUrlQueryString(QueryShowRequest request)
        {
            var p = GenerateQueryStringParams(request);

            return(string.IsNullOrEmpty(p) ? string.Empty : string.Concat("?", p));
        }
Ejemplo n.º 13
0
 protected virtual string GenerateQueryStringParams(QueryShowRequest request)
 {
     return string.Join("&", GenerateJsonCompatibleKeyValues(request)
         .Select(kv => string.Format("{0}={1}", kv.Key, UrlParam.Encode(kv.Value))));
 }
Ejemplo n.º 14
0
        protected virtual string GenerateRequestUrlQueryString(QueryShowRequest request)
        {
            var p = GenerateQueryStringParams(request);

            return string.IsNullOrEmpty(p) ? string.Empty : string.Concat("?", p);
        }
Ejemplo n.º 15
0
        protected virtual IDictionary <string, string> GenerateJsonCompatibleKeyValues(QueryShowRequest request)
        {
            var kvs = new Dictionary <string, string>();

            if (request.HasCustomQueryParameters)
            {
                foreach (var param in request.CustomQueryParameters)
                {
                    kvs.Add(param.Key, param.Value.ToStringExtended());
                }
            }

            return(kvs);
        }
Ejemplo n.º 16
0
 protected virtual string GenerateQueryStringParams(QueryShowRequest request)
 {
     return(string.Join("&", GenerateJsonCompatibleKeyValues(request)
                        .Select(kv => string.Format("{0}={1}", kv.Key, UrlParam.Encode(kv.Value)))));
 }
Ejemplo n.º 17
0
        protected virtual void WithHttpRequestFor(QueryShowRequest query, Action <HttpRequest> a)
        {
            var req = SUT.Create(query);

            a(req);
        }