public void ParseBatchRequestsAsync_Throws_IfRequestIsNull() { DefaultODataBatchHandler batchHandler = new DefaultODataBatchHandler(new HttpServer()); Assert.ThrowsArgumentNull( () => batchHandler.ParseBatchRequestsAsync(null).Wait(), "request"); }
public void ParseBatchRequestsAsync_Returns_RequestsFromMultipartContent() { DefaultODataBatchHandler batchHandler = new DefaultODataBatchHandler(new HttpServer()); HttpRequestMessage batchRequest = new HttpRequestMessage(HttpMethod.Post, "http://example.com/$batch") { Content = new MultipartContent("mixed") { ODataBatchRequestHelper.CreateODataRequestContent(new HttpRequestMessage(HttpMethod.Get, "http://example.com/")), new MultipartContent("mixed") // ChangeSet { ODataBatchRequestHelper.CreateODataRequestContent(new HttpRequestMessage(HttpMethod.Post, "http://example.com/values")) } } }; IList<ODataBatchRequestItem> requests = batchHandler.ParseBatchRequestsAsync(batchRequest).Result; Assert.Equal(2, requests.Count); var operationRequest = ((OperationRequestItem)requests[0]).Request; Assert.Equal(HttpMethod.Get, operationRequest.Method); Assert.Equal("http://example.com/", operationRequest.RequestUri.AbsoluteUri); var changeSetRequest = ((ChangeSetRequestItem)requests[1]).Requests.First(); Assert.Equal(HttpMethod.Post, changeSetRequest.Method); Assert.Equal("http://example.com/values", changeSetRequest.RequestUri.AbsoluteUri); }
public void ParseBatchRequestsAsync_CopiesPropertiesFromRequest_WithoutExcludedProperties() { DefaultODataBatchHandler batchHandler = new DefaultODataBatchHandler(new HttpServer()); HttpRequestMessage batchRequest = new HttpRequestMessage(HttpMethod.Post, "http://example.com/$batch") { Content = new MultipartContent("mixed") { ODataBatchRequestHelper.CreateODataRequestContent(new HttpRequestMessage(HttpMethod.Get, "http://example.com/")), new MultipartContent("mixed") // ChangeSet { ODataBatchRequestHelper.CreateODataRequestContent(new HttpRequestMessage(HttpMethod.Post, "http://example.com/values")) } } }; batchRequest.Properties.Add("foo", "bar"); batchRequest.SetRouteData(new HttpRouteData(new HttpRoute())); batchRequest.RegisterForDispose(new StringContent(String.Empty)); IList<ODataBatchRequestItem> requests = batchHandler.ParseBatchRequestsAsync(batchRequest, CancellationToken.None).Result; Assert.Equal(2, requests.Count); var operationRequest = ((OperationRequestItem)requests[0]).Request; Assert.Equal(HttpMethod.Get, operationRequest.Method); Assert.Equal("http://example.com/", operationRequest.RequestUri.AbsoluteUri); Assert.Equal("bar", operationRequest.Properties["foo"]); Assert.Null(operationRequest.GetRouteData()); Assert.Same(operationRequest, operationRequest.GetUrlHelper().Request); Assert.Empty(operationRequest.GetResourcesForDisposal()); var changeSetRequest = ((ChangeSetRequestItem)requests[1]).Requests.First(); Assert.Equal(HttpMethod.Post, changeSetRequest.Method); Assert.Equal("http://example.com/values", changeSetRequest.RequestUri.AbsoluteUri); Assert.Equal("bar", changeSetRequest.Properties["foo"]); Assert.Null(changeSetRequest.GetRouteData()); Assert.Same(operationRequest, operationRequest.GetUrlHelper().Request); Assert.Empty(changeSetRequest.GetResourcesForDisposal()); }