public async Task DoesntCallLengthPrematurely()
        {
            var stream1 = new NoLengthStream();
            var stream2 = new MockReadStream(50);

            var mockTransport = new MockTransport(
                new MockResponse(200)
            {
                ContentStream = stream1
            },
                new MockResponse(200)
            {
                ContentStream = stream2
            }
                );
            var pipeline = new HttpPipeline(mockTransport);

            var reliableStream = RetriableStream.Create(await SendTestRequestAsync(pipeline, 0), offset => SendTestRequestAsync(pipeline, offset), new ResponseClassifier(), maxRetries: 5);

            Assert.AreEqual(50, await reliableStream.ReadAsync(_buffer, 0, 50));
            Assert.AreEqual(50, reliableStream.Position);

            Assert.AreEqual(0, await reliableStream.ReadAsync(_buffer, 0, 50));

            Assert.Throws <NotSupportedException>(() => _ = reliableStream.Length);

            AssertReads(_buffer, 50);
        }
Example #2
0
 public void FromStream_NoLength()
 {
     using (var s = new NoLengthStream())
         using (var d = NSData.FromStream(s)) {
             Assert.That(d.Length, Is.EqualTo((nuint)16), "Length");
         }
 }