1+ using System . Net ;
12using RestSharp . Tests . Integrated . Fixtures ;
3+ using RestSharp . Tests . Integrated . Server ;
24using RestSharp . Tests . Shared . Fixtures ;
35
46namespace RestSharp . Tests . Integrated ;
57
6- public class HttpHeadersTests : CaptureFixture {
8+ [ Collection ( nameof ( TestServerCollection ) ) ]
9+ public class HttpHeadersTests {
710 readonly ITestOutputHelper _output ;
11+ readonly RestClient _client ;
812
9- public HttpHeadersTests ( ITestOutputHelper output ) => _output = output ;
13+ public HttpHeadersTests ( TestServerFixture fixture , ITestOutputHelper output ) {
14+ _output = output ;
15+ _client = new RestClient ( new RestClientOptions ( fixture . Server . Url ) { ThrowOnAnyError = true } ) ;
16+ }
1017
1118 [ Fact ]
1219 public async Task Ensure_headers_correctly_set_in_the_hook ( ) {
1320 const string headerName = "HeaderName" ;
1421 const string headerValue = "HeaderValue" ;
1522
16- using var server = SimpleServer . Create ( Handlers . Generic < RequestHeadCapturer > ( ) ) ;
17-
18- // Prepare
19- var client = new RestClient ( server . Url ) ;
20-
21- var request = new RestRequest ( RequestHeadCapturer . Resource ) {
23+ var request = new RestRequest ( "/headers" ) {
2224 OnBeforeRequest = http => {
2325 http . Headers . Add ( headerName , headerValue ) ;
2426 return default ;
2527 }
2628 } ;
2729
2830 // Run
29- await client . ExecuteAsync ( request ) ;
31+ var response = await _client . ExecuteAsync < TestServerResponse [ ] > ( request ) ;
3032
3133 // Assert
32- RequestHeadCapturer . CapturedHeaders [ headerName ] . Should ( ) . Be ( headerValue ) ;
34+ response . StatusCode . Should ( ) . Be ( HttpStatusCode . OK ) ;
35+ var header = response . Data ! . First ( x => x . Name == headerName ) ;
36+ header . Should ( ) . NotBeNull ( ) ;
37+ header . Value . Should ( ) . Be ( headerValue ) ;
3338 }
39+
40+ [ Fact ]
41+ public async Task Should_use_both_default_and_request_headers ( ) {
42+ var defaultHeader = new Header ( "defName" , "defValue" ) ;
43+ var requestHeader = new Header ( "reqName" , "reqValue" ) ;
44+
45+ _client . AddDefaultHeader ( defaultHeader . Name , defaultHeader . Value ) ;
46+
47+ var request = new RestRequest ( "/headers" )
48+ . AddHeader ( requestHeader . Name , requestHeader . Value ) ;
49+
50+ var response = await _client . ExecuteAsync < TestServerResponse [ ] > ( request ) ;
51+ CheckHeader ( defaultHeader ) ;
52+ CheckHeader ( requestHeader ) ;
53+
54+ void CheckHeader ( Header header ) {
55+ var h = response . Data ! . First ( x => x . Name == header . Name ) ;
56+ h . Should ( ) . NotBeNull ( ) ;
57+ h . Value . Should ( ) . Be ( header . Value ) ;
58+ }
59+ }
60+
61+ record Header ( string Name , string Value ) ;
3462}
0 commit comments