public async Task Receive_ChunkedResponse_Success(int testIdx, TestHeadersSink responseHeaders, List <string> responseContent, TestHeadersSink responseTrailingHeaders) { _ = testIdx; // only used to assist debugging. await RunSingleStreamTest( async (client, serverUri) => { client.ConfigureRequest(contentLength: 0, hasTrailingHeaders: false); client.WriteRequest(HttpMethod.Get, serverUri); client.WriteHeader("TE", "trailers"); await client.CompleteRequestAsync(); Assert.True(await client.ReadToResponseAsync()); Version version = client.Version !; TestHeadersSink headers = await client.ReadAllHeadersAsync(); if (version.Major == 1) { Assert.Equal("chunked", headers.GetSingleValue("transfer-encoding")); } Assert.True(headers.Contains(responseHeaders)); string content = await client.ReadAllContentAsStringAsync(); Assert.Equal(string.Join("", responseContent), content); TestHeadersSink trailers = await client.ReadAllTrailingHeadersAsync(); Assert.True(trailers.Contains(responseTrailingHeaders)); }, async server => { await server.ReceiveAndSendChunkedAsync(headers: responseHeaders, content: responseContent, trailingHeaders: responseTrailingHeaders); }); }
public async Task HeadersReceived_Success(TestHeadersSink expectedResponseHeaders) { await RunSingleStreamTest( async (clientRequest, serverUri) => { clientRequest.ConfigureRequest(contentLength: 0, hasTrailingHeaders: false); clientRequest.WriteRequest(HttpMethod.Get, serverUri); await clientRequest.CompleteRequestAsync(); TestHeadersSink actualResponseHeaders = await clientRequest.ReadAllHeadersAsync(); Assert.True(actualResponseHeaders.Contains(expectedResponseHeaders)); }, async serverStream => { await serverStream.ReceiveAndSendAsync(headers: expectedResponseHeaders); }); }