Summary

Class:WireMock.Http.HttpClientHelper
Assembly:WireMock.Net
File(s):C:\Users\StefHeyenrath\Documents\GitHub\WireMock.Net\src\WireMock.Net\Http\HttpClientHelper.cs
Covered lines:14
Uncovered lines:14
Coverable lines:28
Total lines:78
Line coverage:50%
Branch coverage:30%

Metrics

MethodCyclomatic complexity NPath complexity Sequence coverage Branch coverage
CreateHttpClient(...)000.7370.75
SendAsync()0000

File(s)

C:\Users\StefHeyenrath\Documents\GitHub\WireMock.Net\src\WireMock.Net\Http\HttpClientHelper.cs

#LineLine coverage
 1using System;
 2using System.Net;
 3using System.Net.Http;
 4using System.Threading.Tasks;
 5using JetBrains.Annotations;
 6using WireMock.HttpsCertificate;
 7using WireMock.Validation;
 8
 9namespace WireMock.Http
 10{
 11    internal static class HttpClientHelper
 12    {
 13        public static HttpClient CreateHttpClient(string clientX509Certificate2ThumbprintOrSubjectName = null)
 214        {
 15#if NETSTANDARD
 216            var handler = new HttpClientHandler
 217            {
 218                CheckCertificateRevocationList = false,
 219                SslProtocols = System.Security.Authentication.SslProtocols.Tls12 | System.Security.Authentication.SslPro
 220                ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true,
 221                AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
 222            };
 23#elif NET46
 24            var handler = new HttpClientHandler
 25            {
 26                ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true,
 27                AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
 28            };
 29            ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;
 30#else
 31            var handler = new WebRequestHandler
 32            {
 33                ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true,
 34                AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
 35            };
 36            ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;
 37#endif
 38
 239            if (!string.IsNullOrEmpty(clientX509Certificate2ThumbprintOrSubjectName))
 040            {
 041                handler.ClientCertificateOptions = ClientCertificateOption.Manual;
 42
 043                var x509Certificate2 = ClientCertificateHelper.GetCertificate(clientX509Certificate2ThumbprintOrSubjectN
 044                handler.ClientCertificates.Add(x509Certificate2);
 045            }
 46
 47            // For proxy we shouldn't follow auto redirects
 248            handler.AllowAutoRedirect = false;
 49
 50            // If UseCookies enabled, httpClient ignores Cookie header
 251            handler.UseCookies = false;
 52
 253            var client = new HttpClient(handler);
 54#if NET452 || NET46
 55            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityPro
 56#endif
 257            return client;
 258        }
 59
 60        public static async Task<ResponseMessage> SendAsync([NotNull] HttpClient client, [NotNull] RequestMessage reques
 061        {
 062            Check.NotNull(client, nameof(client));
 063            Check.NotNull(requestMessage, nameof(requestMessage));
 64
 065            var originalUri = new Uri(requestMessage.Url);
 066            var requiredUri = new Uri(url);
 67
 68            // Create HttpRequestMessage
 069            var httpRequestMessage = HttpRequestMessageHelper.Create(requestMessage, url);
 70
 71            // Call the URL
 072            var httpResponseMessage = await client.SendAsync(httpRequestMessage, HttpCompletionOption.ResponseContentRea
 73
 74            // Create ResponseMessage
 075            return await HttpResponseMessageHelper.Create(httpResponseMessage, requiredUri, originalUri);
 076        }
 77    }
 78}