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"); }
public void DoesNotSetTheContentWhenRequestHasNoContent() { HttpConnectRequest request = CreatePostRequest(content: null); HttpRequestMessage httpRequestMessage = _middleware.BuildRequestMessageTester(request); httpRequestMessage.Content.Should().BeNull(); }
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")); }
public void SetsTheRequestMethod(string method) { HttpMethod httpMethod = new HttpMethod(method); HttpConnectRequest httpConnectRequest = CreateRequest(httpMethod); HttpRequestMessage httpRequestMessage = _middleware.BuildRequestMessageTester(httpConnectRequest); httpRequestMessage.Method.Should().Be(httpMethod); }
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")); }
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()); }
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()); }
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()); }
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"); }
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); }
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")); }
public HttpRequestMessage BuildRequestMessageTester(HttpConnectRequest request) { return(BuildHttpRequestMessage(request)); }