Esempio n. 1
0
            public void CompressedTheContentIfGzipIsProvidedOnTheHeader()
            {
                GZippedContent     gzippedContent     = new GZippedContent(new JsonContent(new { test = "test" }));
                HttpConnectRequest request            = CreatePostRequest(content: gzippedContent);
                HttpRequestMessage httpRequestMessage = _middleware.BuildRequestMessageTester(request);
                var content       = httpRequestMessage.Content;
                var contentHeader = content.Headers.SingleOrDefault(h => h.Key == "Content-Encoding");

                contentHeader.Should().NotBeNull();
                contentHeader.Value.SingleOrDefault(v => v == "gzip").Should().NotBeNull();
                content.Should().NotBeNull();

                var stream = content.ReadAsStreamAsync().Result;

                var serializer = new JsonSerializer();

                string jsonString = "";

                using (System.IO.MemoryStream output = new System.IO.MemoryStream())
                {
                    using (System.IO.Compression.GZipStream sr = new System.IO.Compression.GZipStream(stream, System.IO.Compression.CompressionMode.Decompress))
                    {
                        sr.CopyTo(output);
                    }

                    jsonString = Encoding.UTF8.GetString(output.GetBuffer(), 0, (int)output.Length);
                }

                JObject json = JObject.Parse(jsonString);

                json["test"].ToString().Should().Be("test");
            }
Esempio n. 2
0
            public void DoesNotSetTheContentWhenRequestHasNoContent()
            {
                HttpConnectRequest request = CreatePostRequest(content: null);

                HttpRequestMessage httpRequestMessage = _middleware.BuildRequestMessageTester(request);

                httpRequestMessage.Content.Should().BeNull();
            }
Esempio n. 3
0
            public void SetsTheRequestUri()
            {
                HttpConnectRequest httpConnectRequest = CreateGetRequest(new Uri("http://www.example.com/test/endpoint"));

                HttpRequestMessage httpRequestMessage = _middleware.BuildRequestMessageTester(httpConnectRequest);

                httpRequestMessage.RequestUri.Should().Be(new Uri("http://www.example.com/test/endpoint"));
            }
Esempio n. 4
0
            public void SetsTheRequestMethod(string method)
            {
                HttpMethod         httpMethod         = new HttpMethod(method);
                HttpConnectRequest httpConnectRequest = CreateRequest(httpMethod);

                HttpRequestMessage httpRequestMessage = _middleware.BuildRequestMessageTester(httpConnectRequest);

                httpRequestMessage.Method.Should().Be(httpMethod);
            }
Esempio n. 5
0
            public async Task WhenClientIsSetupWithBaseUrlAndRequestUsesRelativeUriTheRequestUriUpdatedWithBaseUrl()
            {
                var client  = new HttpConnectClient(new Uri("https://www.example.com"));
                var request = new HttpConnectRequest(HttpMethod.Get, new Uri("/relative/url", UriKind.Relative));

                await client.SendAsync <int>(request, CancellationToken.None);

                request.RequestUri.Should().Be(new Uri("https://www.example.com/relative/url"));
            }
Esempio n. 6
0
            public void SetsTheContentFromStringContent()
            {
                StringContent      stringContent = new StringContent("THIS IS A TEST", "text/plain");
                HttpConnectRequest request       = CreatePostRequest(content: stringContent);

                HttpRequestMessage httpRequestMessage = _middleware.BuildRequestMessageTester(request);

                httpRequestMessage.Content.Headers.GetValues("Content-Type").Single().Should().Be("text/plain");
                string content = httpRequestMessage.Content.ReadAsStringAsync().Result;

                content.Should().Be(stringContent.Serialize());
            }
Esempio n. 7
0
            public void SetsTheContentFromJsonContent()
            {
                JsonContent        jsonContent = new JsonContent(new { test = "test" });
                HttpConnectRequest request     = CreatePostRequest(content: jsonContent);

                HttpRequestMessage httpRequestMessage = _middleware.BuildRequestMessageTester(request);

                httpRequestMessage.Content.Headers.GetValues("Content-Type").Single().Should().Be("application/json");
                string content = httpRequestMessage.Content.ReadAsStringAsync().Result;

                content.Should().Be(jsonContent.Serialize());
            }
Esempio n. 8
0
            public void SetsTheContentFromFormUrlContent()
            {
                FormUrlEncodedContent formContent = new FormUrlEncodedContent(
                    new Dictionary <string, string> {
                    ["test-1"] = "test-1", ["test-2"] = "test-2"
                });
                HttpConnectRequest request = CreatePostRequest(content: formContent);

                HttpRequestMessage httpRequestMessage = _middleware.BuildRequestMessageTester(request);

                httpRequestMessage.Content.Headers.GetValues("Content-Type").Single().Should().Be("application/x-www-form-urlencoded");
                string content = httpRequestMessage.Content.ReadAsStringAsync().Result;

                content.Should().Be(formContent.Serialize());
            }
Esempio n. 9
0
            public void SetsTheHeaders()
            {
                HttpConnectRequest httpConnectRequest = CreateRequest();

                httpConnectRequest.Headers.Authorization = new AuthorizationHeader("Bearer", "abcdef");
                httpConnectRequest.Headers.Accept        = new AcceptHeader("application/vnd.nokia.n-gage.data");
                httpConnectRequest.Headers.Add("User-Agent", "TEST");
                httpConnectRequest.Headers.Add("X-Custom", "Custom");

                var httpRequest = _middleware.BuildRequestMessageTester(httpConnectRequest);

                httpRequest.Headers.GetValues("User-Agent").Should().Contain("TEST");
                httpRequest.Headers.GetValues("Accept").Should().Contain("application/vnd.nokia.n-gage.data");
                httpRequest.Headers.GetValues("Authorization").Single().Should().Be("Bearer abcdef");
                httpRequest.Headers.GetValues("X-Custom").Single().Should().Be("Custom");
            }
Esempio n. 10
0
        protected HttpRequestMessage BuildHttpRequestMessage(HttpConnectRequest httpConnectRequest)
        {
            HttpRequestMessage httpRequestMessage = new HttpRequestMessage(httpConnectRequest.Method, httpConnectRequest.RequestUri);

            foreach (HttpConnectHeader header in httpConnectRequest.Headers)
            {
                httpRequestMessage.Headers.Add(header.Name, header.Value);
            }

            if (httpConnectRequest.Content != null)
            {
                httpRequestMessage.Content = MapHttpConnectRequestContentToHttpContent(httpConnectRequest.Content);
            }

            return(httpRequestMessage);
        }
Esempio n. 11
0
            public async Task WhenClientIsSetupWithBaseUrlAndRequestUsesRelativeUriTheRequestUriUpdatedWithBaseUrl()
            {
                HttpConnectRequest request = null;
                var client = new HttpConnectClient(new Uri("https://www.example.com"), (pipeline) =>
                {
                    pipeline.Use((next) => (ctx) =>
                    {
                        request = ctx.Request;
                        return(Task.CompletedTask);
                    });
                });

                await client.GetAsync(new Uri("/relative/url", UriKind.Relative), CancellationToken.None);

                request.RequestUri.Should().Be(new Uri("https://www.example.com/relative/url"));
            }
Esempio n. 12
0
 public HttpRequestMessage BuildRequestMessageTester(HttpConnectRequest request)
 {
     return(BuildHttpRequestMessage(request));
 }