public void ProcessBatchAsync_Throws_IfRequestIsNull() { DefaultHttpBatchHandler batchHandler = new DefaultHttpBatchHandler(new HttpServer()); Assert.ThrowsArgumentNull( () => batchHandler.ProcessBatchAsync(null, CancellationToken.None).Wait(), "request"); }
public void ProcessBatchAsync_CallsRegisterForDispose() { List<IDisposable> expectedResourcesForDisposal = new List<IDisposable>(); MockHttpServer server = new MockHttpServer(request => { var tmpContent = new StringContent(String.Empty); request.RegisterForDispose(tmpContent); expectedResourcesForDisposal.Add(tmpContent); return new HttpResponseMessage { Content = new StringContent(request.RequestUri.AbsoluteUri) }; }); DefaultHttpBatchHandler batchHandler = new DefaultHttpBatchHandler(server); HttpRequestMessage batchRequest = new HttpRequestMessage { Content = new MultipartContent("mixed") { new HttpMessageContent(new HttpRequestMessage(HttpMethod.Get, "http://example.com/")), new HttpMessageContent(new HttpRequestMessage(HttpMethod.Post, "http://example.org/")) } }; var response = batchHandler.ProcessBatchAsync(batchRequest, CancellationToken.None).Result; var resourcesForDisposal = batchRequest.GetResourcesForDisposal(); foreach (var expectedResource in expectedResourcesForDisposal) { Assert.Contains(expectedResource, resourcesForDisposal); } }
public async Task WebHost_Batching_WithSpecialCharactersInUrl() { // Arrange var handler = new SuccessMessageHandler(); var routeCollection = new HostedHttpRouteCollection(new RouteCollection(), "/"); routeCollection.Add("default", routeCollection.CreateRoute( "values/ space", defaults: null, constraints: null, dataTokens: null, handler: handler)); var configuration = new HttpConfiguration(routeCollection); var server = new HttpServer(configuration); var batchHandler = new DefaultHttpBatchHandler(server); var request = new HttpRequestMessage { Content = new MultipartContent("mixed") { new HttpMessageContent(new HttpRequestMessage(HttpMethod.Post, "http://contoso.com/values/ space")) } }; // Arrange var response = await batchHandler.ProcessBatchAsync(request, CancellationToken.None); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.True(handler.IsCalled); }