public void Can_copy_x_forwarded_headers()
        {
            var httpContext = new DefaultHttpContext();

            httpContext.Request.Method = "GET";
            httpContext.Request.Headers.TryAdd(XForwardedExtensions.XForwardedFor, "127.0.0.1");
            httpContext.Request.Headers.TryAdd(XForwardedExtensions.XForwardedHost, "localhost");
            httpContext.Request.Headers.TryAdd(XForwardedExtensions.XForwardedProto, "http");
            httpContext.Request.Headers.TryAdd(XForwardedExtensions.XForwardedPathBase, "127.0.0.1");

            var services = new ServiceCollection();

            services.AddTransient <ProxyKitClient>();
            services.AddTransient(sp => new HttpClient());
            var serviceProvider = services.BuildServiceProvider();

            httpContext.RequestServices = serviceProvider;

            var forwardContext = httpContext
                                 .ForwardTo(new UpstreamHost("http://localhost"))
                                 .CopyXForwardedHeaders();

            forwardContext.UpstreamRequest.Headers.Contains(XForwardedExtensions.XForwardedFor).ShouldBeTrue();
            forwardContext.UpstreamRequest.Headers.Contains(XForwardedExtensions.XForwardedHost).ShouldBeTrue();
            forwardContext.UpstreamRequest.Headers.Contains(XForwardedExtensions.XForwardedProto).ShouldBeTrue();
            forwardContext.UpstreamRequest.Headers.Contains(XForwardedExtensions.XForwardedPathBase).ShouldBeTrue();
        }