public void SetHttpHeaders_transforms_HTTP_headers_correctly_from_a_given_OnPremiseTargetRequest_and_sets_them_on_a_given_HttpContent()
        {
            var sut         = new HttpResponseMessageBuilder(null);
            var httpHeaders = new Dictionary <string, string>
            {
                ["Content-MD5"]         = "Q2hlY2sgSW50ZWdyaXR5IQ==",         // will be discarded
                ["Content-Range"]       = "bytes 21010-47021/47022",          // will be discarded
                ["Content-Disposition"] = "attachment",
                ["Content-Length"]      = "300",
                ["Content-Location"]    = "http://tt.invalid",
                ["Content-Type"]        = "application/json",
                ["Expires"]             = "Thu, 01 Dec 1994 16:00:00 GMT",
                ["Last-Modified"]       = "Thu, 01 Dec 1994 15:00:00 GMT",
            };
            var httpContent = new ByteArrayContent(new byte[] { });

            sut.AddContentHttpHeaders(httpContent, httpHeaders);

            httpContent.Headers.Should().HaveCount(6);
            httpContent.Headers.ContentMD5.Should().BeNull();
            httpContent.Headers.ContentRange.Should().BeNull();
            httpContent.Headers.ContentDisposition.Should().Be(ContentDispositionHeaderValue.Parse("attachment"));
            httpContent.Headers.ContentLength.Should().Be(300L);
            httpContent.Headers.ContentLocation.Should().Be("http://tt.invalid");
            httpContent.Headers.ContentType.Should().Be(MediaTypeHeaderValue.Parse("application/json"));
            httpContent.Headers.Expires.Should().Be(new DateTime(1994, 12, 1, 16, 0, 0));
            httpContent.Headers.LastModified.Should().Be(new DateTime(1994, 12, 1, 15, 0, 0));
        }
        public void SetHttpHeaders_does_nothing_when_no_HttpHeaders_are_provided()
        {
            var sut         = new HttpResponseMessageBuilder(null);
            var httpContent = new ByteArrayContent(new byte[] { });

            sut.AddContentHttpHeaders(httpContent, null);

            httpContent.Headers.Should().BeEmpty();
        }
        public void SetHttpHeaders_sets_unknown_HTTP_headers_without_validation_correctly_from_a_OnPremiseTargetRequest_on_a_given_HttpContent()
        {
            var sut         = new HttpResponseMessageBuilder(null);
            var httpHeaders = new Dictionary <string, string>
            {
                ["X-Foo"] = "X-Bar",
                ["Foo"]   = "Bar",
            };
            var httpContent = new ByteArrayContent(new byte[] { });

            sut.AddContentHttpHeaders(httpContent, httpHeaders);

            httpContent.Headers.Should().HaveCount(2);
            httpContent.Headers.GetValues("X-Foo").Single().Should().Be("X-Bar");
            httpContent.Headers.GetValues("Foo").Single().Should().Be("Bar");
        }