Change to fix issue not setting content type header

This commit is contained in:
tom.pallister 2017-04-28 13:04:40 +01:00
parent 1a76c9fbd9
commit be3a2fb6ed
2 changed files with 35 additions and 1 deletions

View File

@ -5,6 +5,7 @@
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
@ -44,7 +45,11 @@
return null;
}
return new ByteArrayContent(await ToByteArray(request.Body));
var content = new ByteArrayContent(await ToByteArray(request.Body));
content.Headers.TryAddWithoutValidation("Content-Type", new[] {request.ContentType});
return content;
}
private HttpMethod MapMethod(HttpRequest request)

View File

@ -117,6 +117,35 @@
.BDDfy();
}
[Fact]
public void Should_map_content_type_header()
{
this.Given(_ => GivenTheInputRequestHasContent("This is my content"))
.And(_ => GivenTheContentTypeIs("application/json"))
.And(_ => GivenTheInputRequestHasMethod("GET"))
.And(_ => GivenTheInputRequestHasAValidUri())
.When(_ => WhenMapped())
.Then(_ => ThenNoErrorIsReturned())
.And(_ => ThenTheMappedRequestHasContentTypeHeader("application/json"))
.And(_ => ThenTheMappedRequestHasContentSize("This is my content".Length))
.BDDfy();
}
private void GivenTheContentTypeIs(string contentType)
{
_inputRequest.ContentType = contentType;
}
private void ThenTheMappedRequestHasContentTypeHeader(string expected)
{
_mappedRequest.Data.Content.Headers.ContentType.MediaType.ShouldBe(expected);
}
private void ThenTheMappedRequestHasContentSize(long expected)
{
_mappedRequest.Data.Content.Headers.ContentLength.ShouldBe(expected);
}
[Fact]
public void Should_handle_no_content()
{