[I] public async Task HttpClientUseProxyShouldBeTrueWhenEnabledAutoProxyDetection() { var connection = new TestableHttpConnection(); var requestData = CreateRequestData(); connection.Request<StringResponse>(requestData); connection.LastHttpClientHandler.UseProxy.Should().BeTrue(); await connection.RequestAsync<StringResponse>(requestData, CancellationToken.None).ConfigureAwait(false); connection.LastHttpClientHandler.UseProxy.Should().BeTrue(); }
[I] public async Task HttpClientSetsContentLengthWhenTransferEncodingChunkedHttpCompression() { var requestData = CreateRequestData(transferEncodingChunked: false, httpCompression: true); var connection = new TestableHttpConnection(responseMessage => { responseMessage.RequestMessage.Content.Headers.ContentLength.Should().HaveValue(); }); connection.Request<StringResponse>(requestData); await connection.RequestAsync<StringResponse>(requestData, CancellationToken.None).ConfigureAwait(false); }
[Fact] public async Task HttpClientSetsContentLengthWhenTransferEncodingChunkedFalse() { var connection = new TestableHttpConnection(responseMessage => { responseMessage.RequestMessage.Content.Headers.ContentLength.Should().HaveValue(); }); var transport = Setup(connection, transferEncodingChunked: false); transport.Post <StringResponse>(Path, Body); await transport.PostAsync <StringResponse>(Path, Body, CancellationToken.None).ConfigureAwait(false); }
[Fact] public async Task HttpClientUseProxyShouldBeTrueWhenEnabledAutoProxyDetection() { var connection = new TestableHttpConnection(); var transport = Setup(connection); transport.Post <StringResponse>(Path, Body); connection.LastHttpClientHandler.UseProxy.Should().BeTrue(); await transport.PostAsync <StringResponse>(Path, Body, CancellationToken.None).ConfigureAwait(false); connection.LastHttpClientHandler.UseProxy.Should().BeTrue(); }
public async Task HttpClientUseProxyShouldBeFalseWhenDisabledAutoProxyDetection() { var connection = new TestableHttpConnection(); var requestData = CreateRequestData(disableAutomaticProxyDetection: true); connection.Request <string>(requestData); connection.LastUsedHttpClientHandler.UseProxy.Should().BeFalse(); await connection.RequestAsync <string>(requestData, CancellationToken.None).ConfigureAwait(false); connection.LastUsedHttpClientHandler.UseProxy.Should().BeFalse(); }
[I] public async Task SingleInstanceOfHttpClient() { var connection = new TestableHttpConnection(); var requestData = CreateRequestData(); connection.Request<StringResponse>(requestData); connection.CallCount.Should().Be(1); connection.ClientCount.Should().Be(1); await connection.RequestAsync<StringResponse>(requestData, CancellationToken.None).ConfigureAwait(false); connection.CallCount.Should().Be(2); connection.ClientCount.Should().Be(1); }
public async Task SingleInstanceOfHttpClient() { var connection = new TestableHttpConnection(); var requestData = CreateRequestData(TimeSpan.FromMinutes(1)); connection.Request <string>(requestData); connection.CallCount.Should().Be(1); connection.ClientCount.Should().Be(1); await connection.RequestAsync <string>(requestData, CancellationToken.None).ConfigureAwait(false); connection.CallCount.Should().Be(2); connection.ClientCount.Should().Be(1); }
/// <summary> /// Setting HttpClientHandler.Proxy = null don't disable HttpClient automatic proxy detection. /// It is disabled by setting Proxy to non-null value or by setting UseProxy = false. /// </summary> [Fact] public async Task HttpClientUseProxyShouldBeFalseWhenDisabledAutoProxyDetection() { var connection = new TestableHttpConnection(); var transport = Setup(connection, disableAutomaticProxyDetection: true); var r = transport.Post <StringResponse>(Path, Body); connection.LastHttpClientHandler.UseProxy.Should().BeFalse(); r.Body.Should().Be(BodyString); r = await transport.PostAsync <StringResponse>(Path, Body, CancellationToken.None).ConfigureAwait(false); connection.LastHttpClientHandler.UseProxy.Should().BeFalse(); r.Body.Should().Be(BodyString); }
private static async Task MultipleInstancesOfHttpClientWhen(Func<RequestData> differentRequestData) { var connection = new TestableHttpConnection(); var requestData = CreateRequestData(); connection.Request<StringResponse>(requestData); connection.CallCount.Should().Be(1); connection.ClientCount.Should().Be(1); requestData = differentRequestData(); await connection.RequestAsync<StringResponse>(requestData, CancellationToken.None).ConfigureAwait(false); connection.CallCount.Should().Be(2); connection.ClientCount.Should().Be(2); }
[I] public async Task RespectsDnsRefreshTimeout() { var connection = new TestableHttpConnection(); connection.RemovedHandlers.Should().Be(0); var requestData = CreateRequestData(dnsRefreshTimeout: TimeSpan.FromSeconds(1)); connection.Request<StringResponse>(requestData); await Task.Delay(TimeSpan.FromSeconds(2)); connection.Request<StringResponse>(requestData); connection.CallCount.Should().Be(2); connection.InUseHandlers.Should().Be(1); connection.RemovedHandlers.Should().Be(1); await connection.RequestAsync<StringResponse>(requestData, CancellationToken.None).ConfigureAwait(false); connection.CallCount.Should().Be(3); connection.InUseHandlers.Should().Be(1); connection.RemovedHandlers.Should().Be(1); }
private Transport Setup( TestableHttpConnection connection, Uri proxyAddress = null, bool?disableAutomaticProxyDetection = null, bool httpCompression = false, bool transferEncodingChunked = false ) { var connectionPool = new SingleNodeConnectionPool(Server.Uri); var config = new TransportConfiguration(connectionPool, connection) .TransferEncodingChunked(transferEncodingChunked) .EnableHttpCompression(httpCompression); config = disableAutomaticProxyDetection.HasValue ? config.DisableAutomaticProxyDetection(disableAutomaticProxyDetection.Value) //make sure we the requests in debugging proxy : TransportTestServer.RerouteToProxyIfNeeded(config); return(new Transport(config)); }