1+ using System ;
2+ using System . Diagnostics . Contracts ;
3+ using System . Globalization ;
14using System . Net ;
25using System . Net . Http ;
6+ using System . Net . Http . Headers ;
7+ using System . Text ;
38using System . Threading . Tasks ;
49using DotNetCoreDocs ;
510using DotNetCoreDocs . Models ;
611using DotNetCoreDocs . Writers ;
712using JsonApiDotNetCoreExample ;
813using Microsoft . AspNetCore . Hosting ;
14+ using Microsoft . AspNetCore . Mvc . Formatters . Internal ;
915using Microsoft . AspNetCore . TestHost ;
1016using Xunit ;
1117
@@ -32,13 +38,36 @@ public async Task Server_Sends_Correct_ContentType_Header()
3238 var server = new TestServer ( builder ) ;
3339 var client = server . CreateClient ( ) ;
3440 var request = new HttpRequestMessage ( httpMethod , route ) ;
35-
41+
3642 // act
3743 var response = await client . SendAsync ( request ) ;
3844
3945 // assert
4046 Assert . Equal ( HttpStatusCode . OK , response . StatusCode ) ;
4147 Assert . Equal ( "application/vnd.api+json" , response . Content . Headers . ContentType . ToString ( ) ) ;
4248 }
49+
50+ [ Fact ]
51+ public async Task Server_Responds_415_With_MediaType_Parameters ( )
52+ {
53+ // arrange
54+ var builder = new WebHostBuilder ( )
55+ . UseStartup < Startup > ( ) ;
56+ var httpMethod = new HttpMethod ( "GET" ) ;
57+ var route = "/api/v1/todo-items" ;
58+ var description = new RequestProperties ( "Server responds with 415 if request contains media type parameters" ) ;
59+ var server = new TestServer ( builder ) ;
60+ var client = server . CreateClient ( ) ;
61+ var request = new HttpRequestMessage ( httpMethod , route ) ;
62+ request . Content = new StringContent ( string . Empty ) ;
63+ request . Content . Headers . ContentType = new MediaTypeHeaderValue ( "application/vnd.api+json" ) ;
64+ request . Content . Headers . ContentType . CharSet = "ISO-8859-4" ;
65+
66+ // act
67+ var response = await client . SendAsync ( request ) ;
68+
69+ // assert
70+ Assert . Equal ( HttpStatusCode . UnsupportedMediaType , response . StatusCode ) ;
71+ }
4372 }
4473}
0 commit comments