1
1
namespace RestSharp . Tests . Integrated ;
2
2
3
3
public sealed class HttpHeadersTests ( WireMockTestServer server ) : IClassFixture < WireMockTestServer > , IDisposable {
4
- readonly RestClient _client = new ( new RestClientOptions ( server . Url ! ) { ThrowOnAnyError = true } ) ;
4
+ const string UserAgent = "RestSharp/test" ;
5
+
6
+ readonly RestClient _client = new ( new RestClientOptions ( server . Url ! ) { ThrowOnAnyError = true , UserAgent = UserAgent } ) ;
5
7
6
8
[ Fact ]
7
9
public async Task Ensure_headers_correctly_set_in_the_interceptor ( ) {
@@ -17,7 +19,7 @@ public async Task Ensure_headers_correctly_set_in_the_interceptor() {
17
19
18
20
// Assert
19
21
response . StatusCode . Should ( ) . Be ( HttpStatusCode . OK ) ;
20
- var header = response . Data ! . First ( x => x . Name == headerName ) ;
22
+ var header = FindHeader ( response , headerName ) ;
21
23
header . Should ( ) . NotBeNull ( ) ;
22
24
header . Value . Should ( ) . Be ( headerValue ) ;
23
25
}
@@ -40,7 +42,7 @@ public async Task Ensure_headers_correctly_set_in_the_hook() {
40
42
// Assert
41
43
response . StatusCode . Should ( ) . Be ( HttpStatusCode . OK ) ;
42
44
response . Data . Should ( ) . NotBeNull ( ) ;
43
- var header = response . Data ! . First ( x => x . Name == headerName ) ;
45
+ var header = FindHeader ( response , headerName ) ;
44
46
header . Should ( ) . NotBeNull ( ) ;
45
47
header . Value . Should ( ) . Be ( headerValue ) ;
46
48
}
@@ -56,17 +58,28 @@ public async Task Should_use_both_default_and_request_headers() {
56
58
. AddHeader ( requestHeader . Name , requestHeader . Value ) ;
57
59
58
60
var response = await _client . ExecuteAsync < TestServerResponse [ ] > ( request ) ;
59
- CheckHeader ( defaultHeader ) ;
60
- CheckHeader ( requestHeader ) ;
61
- return ;
62
-
63
- void CheckHeader ( Header header ) {
64
- var h = response . Data ! . First ( x => x . Name == header . Name ) ;
65
- h . Should ( ) . NotBeNull ( ) ;
66
- h . Value . Should ( ) . Be ( header . Value ) ;
67
- }
61
+ CheckHeader ( response , defaultHeader ) ;
62
+ CheckHeader ( response , requestHeader ) ;
68
63
}
69
64
65
+ [ Fact ]
66
+ public async Task Should_sent_custom_UserAgent ( ) {
67
+ var request = new RestRequest ( "/headers" ) ;
68
+ var response = await _client . ExecuteAsync < TestServerResponse [ ] > ( request ) ;
69
+ var h = FindHeader ( response , "User-Agent" ) ;
70
+ h . Should ( ) . NotBeNull ( ) ;
71
+ h . Value . Should ( ) . Be ( UserAgent ) ;
72
+ }
73
+
74
+ static void CheckHeader ( RestResponse < TestServerResponse [ ] > response , Header header ) {
75
+ var h = FindHeader ( response , header . Name ) ;
76
+ h . Should ( ) . NotBeNull ( ) ;
77
+ h . Value . Should ( ) . Be ( header . Value ) ;
78
+ }
79
+
80
+ static TestServerResponse FindHeader ( RestResponse < TestServerResponse [ ] > response , string headerName )
81
+ => response . Data ! . First ( x => x . Name == headerName ) ;
82
+
70
83
record Header ( string Name , string Value ) ;
71
84
72
85
class HeaderInterceptor ( string headerName , string headerValue ) : Interceptors . Interceptor {
0 commit comments