11namespace RestSharp . Tests . Integrated ;
22
33public 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 } ) ;
57
68 [ Fact ]
79 public async Task Ensure_headers_correctly_set_in_the_interceptor ( ) {
@@ -17,7 +19,7 @@ public async Task Ensure_headers_correctly_set_in_the_interceptor() {
1719
1820 // Assert
1921 response . StatusCode . Should ( ) . Be ( HttpStatusCode . OK ) ;
20- var header = response . Data ! . First ( x => x . Name == headerName ) ;
22+ var header = FindHeader ( response , headerName ) ;
2123 header . Should ( ) . NotBeNull ( ) ;
2224 header . Value . Should ( ) . Be ( headerValue ) ;
2325 }
@@ -40,7 +42,7 @@ public async Task Ensure_headers_correctly_set_in_the_hook() {
4042 // Assert
4143 response . StatusCode . Should ( ) . Be ( HttpStatusCode . OK ) ;
4244 response . Data . Should ( ) . NotBeNull ( ) ;
43- var header = response . Data ! . First ( x => x . Name == headerName ) ;
45+ var header = FindHeader ( response , headerName ) ;
4446 header . Should ( ) . NotBeNull ( ) ;
4547 header . Value . Should ( ) . Be ( headerValue ) ;
4648 }
@@ -56,17 +58,28 @@ public async Task Should_use_both_default_and_request_headers() {
5658 . AddHeader ( requestHeader . Name , requestHeader . Value ) ;
5759
5860 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 ) ;
6863 }
6964
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+
7083 record Header ( string Name , string Value ) ;
7184
7285 class HeaderInterceptor ( string headerName , string headerValue ) : Interceptors . Interceptor {
0 commit comments