public async Task ExecuteRequestMessagesAsync_DisposesResponseInCaseOfException() { List <DisposableResponseMessage> responses = new List <DisposableResponseMessage>(); MockHttpServer server = new MockHttpServer( request => { if (request.Method == HttpMethod.Put) { throw new InvalidOperationException(); } var response = new DisposableResponseMessage(); responses.Add(response); return(response); } ); DefaultHttpBatchHandler batchHandler = new DefaultHttpBatchHandler(server); HttpRequestMessage[] requests = new HttpRequestMessage[] { new HttpRequestMessage(HttpMethod.Get, "http://example.com/"), new HttpRequestMessage(HttpMethod.Post, "http://example.com/"), new HttpRequestMessage(HttpMethod.Put, "http://example.com/") }; await Assert.ThrowsAsync <InvalidOperationException>( () => batchHandler.ExecuteRequestMessagesAsync(requests, CancellationToken.None) ); Assert.Equal(2, responses.Count); foreach (var response in responses) { Assert.True(response.IsDisposed); } }
public void ExecuteRequestMessagesAsync_DisposesResponseInCaseOfException() { List<DisposableResponseMessage> responses = new List<DisposableResponseMessage>(); MockHttpServer server = new MockHttpServer(request => { if (request.Method == HttpMethod.Put) { throw new InvalidOperationException(); } var response = new DisposableResponseMessage(); responses.Add(response); return response; }); DefaultHttpBatchHandler batchHandler = new DefaultHttpBatchHandler(server); HttpRequestMessage[] requests = new HttpRequestMessage[] { new HttpRequestMessage(HttpMethod.Get, "http://example.com/"), new HttpRequestMessage(HttpMethod.Post, "http://example.com/"), new HttpRequestMessage(HttpMethod.Put, "http://example.com/") }; Assert.Throws<InvalidOperationException>( () => batchHandler.ExecuteRequestMessagesAsync(requests, CancellationToken.None).Result); Assert.Equal(2, responses.Count); foreach (var response in responses) { Assert.True(response.IsDisposed); } }