1
+ using System ;
2
+ using System . Diagnostics . Contracts ;
3
+ using System . Globalization ;
1
4
using System . Net ;
2
5
using System . Net . Http ;
6
+ using System . Net . Http . Headers ;
7
+ using System . Text ;
3
8
using System . Threading . Tasks ;
4
9
using DotNetCoreDocs ;
5
10
using DotNetCoreDocs . Models ;
6
11
using DotNetCoreDocs . Writers ;
7
12
using JsonApiDotNetCoreExample ;
8
13
using Microsoft . AspNetCore . Hosting ;
14
+ using Microsoft . AspNetCore . Mvc . Formatters . Internal ;
9
15
using Microsoft . AspNetCore . TestHost ;
10
16
using Xunit ;
11
17
@@ -32,13 +38,36 @@ public async Task Server_Sends_Correct_ContentType_Header()
32
38
var server = new TestServer ( builder ) ;
33
39
var client = server . CreateClient ( ) ;
34
40
var request = new HttpRequestMessage ( httpMethod , route ) ;
35
-
41
+
36
42
// act
37
43
var response = await client . SendAsync ( request ) ;
38
44
39
45
// assert
40
46
Assert . Equal ( HttpStatusCode . OK , response . StatusCode ) ;
41
47
Assert . Equal ( "application/vnd.api+json" , response . Content . Headers . ContentType . ToString ( ) ) ;
42
48
}
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
+ }
43
72
}
44
73
}
0 commit comments