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);
        }
示例#2
0
        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);
        }