public void CreateResponseMessageAsync_Throws_IfRequestIsNull()
 {
     DefaultHttpBatchHandler batchHandler = new DefaultHttpBatchHandler(new HttpServer());
     Assert.ThrowsArgumentNull(
         () => batchHandler.CreateResponseMessageAsync(new HttpResponseMessage[0], null).Wait(),
         "request");
 }
 public void CreateResponseMessageAsync_Throws_IfResponsesAreNull()
 {
     DefaultHttpBatchHandler batchHandler = new DefaultHttpBatchHandler(new HttpServer());
     Assert.ThrowsArgumentNull(
         () => batchHandler.CreateResponseMessageAsync(null, new HttpRequestMessage(), CancellationToken.None).Wait(),
         "responses");
 }
        public void CreateResponseMessageAsync_ReturnsMultipartContent()
        {
            DefaultHttpBatchHandler batchHandler = new DefaultHttpBatchHandler(new HttpServer());
            HttpResponseMessage[] responses = new HttpResponseMessage[]
            {
                new HttpResponseMessage(HttpStatusCode.OK),
                new HttpResponseMessage(HttpStatusCode.BadRequest)
            };

            HttpResponseMessage response = batchHandler.CreateResponseMessageAsync(responses, new HttpRequestMessage()).Result;

            MultipartContent content = Assert.IsType<MultipartContent>(response.Content);
            List<HttpResponseMessage> nestedResponses = new List<HttpResponseMessage>();
            foreach (var part in content)
            {
                nestedResponses.Add(part.ReadAsHttpResponseMessageAsync().Result);
            }

            Assert.Equal(2, nestedResponses.Count);
            Assert.Equal(HttpStatusCode.OK, nestedResponses[0].StatusCode);
            Assert.Equal(HttpStatusCode.BadRequest, nestedResponses[1].StatusCode);
        }