File tree Expand file tree Collapse file tree 3 files changed +24
-6
lines changed
tests/SendGrid.Tests/Reliability Expand file tree Collapse file tree 3 files changed +24
-6
lines changed Original file line number Diff line number Diff line change @@ -78,7 +78,7 @@ protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage
7878
7979 private static void ThrowHttpRequestExceptionIfResponseIsWithinTheServerErrorRange ( HttpResponseMessage responseMessage )
8080 {
81- if ( ( int ) responseMessage . StatusCode >= 500 && ( int ) responseMessage . StatusCode < 600 )
81+ if ( ( int ) responseMessage . StatusCode >= 500 && ( int ) responseMessage . StatusCode <= 504 )
8282 {
8383 throw new HttpRequestException ( string . Format ( "Response Http Status code {0} indicates server error" , responseMessage . StatusCode ) ) ;
8484 }
Original file line number Diff line number Diff line change @@ -58,6 +58,17 @@ public async Task Invoke_ShouldReturnErrorWithoutRetryWhenErrorIsNotTransient()
5858 Assert . Equal ( 1 , innerHandler . InvocationCount ) ;
5959 }
6060
61+ [ Fact ]
62+ public async Task Invoke_ShouldReturnErrorWithoutRetryWhen500ErrorStatusIsNotTransient ( )
63+ {
64+ innerHandler . AddBehaviour ( innerHandler . HttpVersionNotSupported ) ;
65+
66+ var response = await client . SendAsync ( new HttpRequestMessage ( ) ) ;
67+
68+ Assert . Equal ( ( HttpStatusCode ) 505 , response . StatusCode ) ;
69+ Assert . Equal ( 1 , innerHandler . InvocationCount ) ;
70+ }
71+
6172 [ Fact ]
6273 public async Task Invoke_ShoulddRetryOnceWhenFailedOnFirstAttemptThenSuccessful ( )
6374 {
Original file line number Diff line number Diff line change @@ -31,19 +31,26 @@ Task<HttpResponseMessage> behaviour()
3131
3232 public Task < HttpResponseMessage > OK ( )
3333 {
34- var httpResponseMessage = new HttpResponseMessage ( HttpStatusCode . OK ) { Content = new StringContent ( string . Empty ) } ;
35- return Task . Factory . StartNew ( ( ) => httpResponseMessage ) ;
34+ return CreateHttpResponse ( HttpStatusCode . OK ) ;
3635 }
3736
3837 public Task < HttpResponseMessage > InternalServerError ( )
3938 {
40- var httpResponseMessage = new HttpResponseMessage ( HttpStatusCode . InternalServerError ) { Content = new StringContent ( string . Empty ) } ;
41- return Task . Factory . StartNew ( ( ) => httpResponseMessage ) ;
39+ return CreateHttpResponse ( HttpStatusCode . InternalServerError ) ;
4240 }
4341
4442 public Task < HttpResponseMessage > AuthenticationError ( )
4543 {
46- var httpResponseMessage = new HttpResponseMessage ( HttpStatusCode . Unauthorized ) { Content = new StringContent ( string . Empty ) } ;
44+ return CreateHttpResponse ( HttpStatusCode . Unauthorized ) ;
45+ }
46+ public Task < HttpResponseMessage > HttpVersionNotSupported ( )
47+ {
48+ return CreateHttpResponse ( ( HttpStatusCode ) 505 ) ;
49+ }
50+
51+ public Task < HttpResponseMessage > CreateHttpResponse ( HttpStatusCode statusCode )
52+ {
53+ var httpResponseMessage = new HttpResponseMessage ( statusCode ) { Content = new StringContent ( string . Empty ) } ;
4754 return Task . Factory . StartNew ( ( ) => httpResponseMessage ) ;
4855 }
4956
You can’t perform that action at this time.
0 commit comments