public async Task ClosesStreamAfterCopying() { ReadTrackingStream readTrackingStream = new ReadTrackingStream(128, int.MaxValue); MockResponse mockResponse = new MockResponse(200) { ContentStream = readTrackingStream }; MockTransport mockTransport = CreateMockTransport(mockResponse); await SendGetRequest(mockTransport, NoTimeoutPolicy); Assert.True(readTrackingStream.IsClosed); }
public async Task DoesntBufferWhenDisabled() { ReadTrackingStream readTrackingStream = new ReadTrackingStream(128, int.MaxValue); MockResponse mockResponse = new MockResponse(200) { ContentStream = readTrackingStream }; MockTransport mockTransport = CreateMockTransport(mockResponse); Response response = await SendGetRequest(mockTransport, NoTimeoutPolicy, bufferResponse : false); Assert.IsNotInstanceOf <MemoryStream>(response.ContentStream); }
public async Task ReadsEntireBodyIntoMemoryStream() { MockResponse mockResponse = new MockResponse(200); var readTrackingStream = new ReadTrackingStream(128, int.MaxValue); mockResponse.ContentStream = readTrackingStream; MockTransport mockTransport = CreateMockTransport(mockResponse); Response response = await SendGetRequest(mockTransport, NoTimeoutPolicy); Assert.IsInstanceOf<MemoryStream>(response.ContentStream); var ms = (MemoryStream)response.ContentStream; Assert.AreEqual(128, ms.Length); foreach (var b in ms.ToArray()) { Assert.AreEqual(ReadTrackingStream.ContentByteValue, b); } Assert.AreEqual(128, readTrackingStream.BytesRead); Assert.AreEqual(0, ms.Position); }