public void ExecuteOperation_Throws_IfReaderIsNull() { UnbufferedODataBatchHandler batchHandler = new UnbufferedODataBatchHandler(new HttpServer()); Assert.ThrowsArgumentNull( () => batchHandler.ExecuteOperationAsync(null, Guid.NewGuid(), new HttpRequestMessage(), CancellationToken.None).Wait(), "batchReader"); }
public void ExecuteOperation_Throws_IfRequestIsNull() { var httpContent = new StringContent(String.Empty, Encoding.UTF8, "multipart/mixed"); httpContent.Headers.ContentType.Parameters.Add(new NameValueHeaderValue("boundary", Guid.NewGuid().ToString())); var reader = httpContent.GetODataMessageReaderAsync(new ODataMessageReaderSettings()).Result; UnbufferedODataBatchHandler batchHandler = new UnbufferedODataBatchHandler(new HttpServer()); Assert.ThrowsArgumentNull( () => batchHandler.ExecuteOperationAsync(reader.CreateODataBatchReader(), Guid.NewGuid(), null, CancellationToken.None).Wait(), "originalRequest"); }
public void ExecuteOperationAsync_CopiesPropertiesFromRequest_WithoutExcludedProperties() { MockHttpServer server = new MockHttpServer(request => { return new HttpResponseMessage { RequestMessage = request }; }); UnbufferedODataBatchHandler batchHandler = new UnbufferedODataBatchHandler(server); HttpRequestMessage batchRequest = new HttpRequestMessage(HttpMethod.Post, "http://example.com/$batch") { Content = new MultipartContent("mixed") { ODataBatchRequestHelper.CreateODataRequestContent(new HttpRequestMessage(HttpMethod.Get, "http://example.com/")), } }; batchRequest.Properties.Add("foo", "bar"); batchRequest.SetRouteData(new HttpRouteData(new HttpRoute())); batchRequest.RegisterForDispose(new StringContent(String.Empty)); ODataMessageReader reader = batchRequest.Content .GetODataMessageReaderAsync(new ODataMessageReaderSettings { BaseUri = new Uri("http://example.com") }, CancellationToken.None) .Result; ODataBatchReader batchReader = reader.CreateODataBatchReader(); List<ODataBatchResponseItem> responses = new List<ODataBatchResponseItem>(); Guid batchId = Guid.NewGuid(); batchReader.Read(); var response = batchHandler.ExecuteOperationAsync(batchReader, Guid.NewGuid(), batchRequest, CancellationToken.None).Result; var operationResponse = ((OperationResponseItem)response).Response; var operationRequest = operationResponse.RequestMessage; Assert.Equal("bar", operationRequest.Properties["foo"]); Assert.Null(operationRequest.GetRouteData()); Assert.Same(operationRequest, operationRequest.GetUrlHelper().Request); Assert.Empty(operationRequest.GetResourcesForDisposal()); }