public void Transform_should_reuse_default_headers_instance_when_request_headers_are_null()
        {
            var transform = new DefaultHeadersTransform
            {
                { "k1", "v1" }
            };

            transform.Transform(request).Headers.Should().BeSameAs(transform.DefaultHeaders);
        }
        public void Transform_should_preserve_request_url()
        {
            var transform = new DefaultHeadersTransform
            {
                { "k1", "v1" },
                { "k2", "v2" }
            };

            transform.Transform(request).Url.Should().BeSameAs(request.Url);
        }
        public void Transform_should_preserve_request_content()
        {
            var transform = new DefaultHeadersTransform
            {
                { "k1", "v1" },
                { "k2", "v2" }
            };

            request = request.WithContent(new byte[8]);

            transform.Transform(request).Content.Should().BeSameAs(request.Content);
        }
        public void Transform_should_preserve_request_stream_content()
        {
            var transform = new DefaultHeadersTransform
            {
                { "k1", "v1" },
                { "k2", "v2" }
            };

            request = request.WithContent(Stream.Null);

            transform.Transform(request).StreamContent.Should().BeSameAs(request.StreamContent);
        }
        public void Transform_should_give_priority_to_request_headers_when_merging()
        {
            var transform = new DefaultHeadersTransform
            {
                { "k1", "v1" },
                { "k2", "v2" }
            };

            request = request
                      .WithHeader("k2", "override")
                      .WithHeader("k3", "v3");

            var transformedRequest = transform.Transform(request);

            transformedRequest.Headers.Count.Should().Be(3);
            transformedRequest.Headers["k1"].Should().Be("v1");
            transformedRequest.Headers["k2"].Should().Be("override");
            transformedRequest.Headers["k3"].Should().Be("v3");
        }
        public void Transform_should_merge_request_headers_with_default_headers()
        {
            var transform = new DefaultHeadersTransform
            {
                { "k1", "v1" },
                { "k2", "v2" }
            };

            request = request
                      .WithHeader("k3", "v3")
                      .WithHeader("k4", "v4");

            var transformedRequest = transform.Transform(request);

            transformedRequest.Headers.Count.Should().Be(4);
            transformedRequest.Headers["k1"].Should().Be("v1");
            transformedRequest.Headers["k2"].Should().Be("v2");
            transformedRequest.Headers["k3"].Should().Be("v3");
            transformedRequest.Headers["k4"].Should().Be("v4");
        }
        public void Transform_should_return_same_request_if_there_are_no_default_headers()
        {
            var transform = new DefaultHeadersTransform();

            transform.Transform(request).Should().BeSameAs(request);
        }