public void ReadBlock(int size) { var data = GenerateData(size); using (var memoryStream = new MemoryStream(data, writable: false)) using (var cachingStream = new CachingStream(memoryStream, Ownership.Owns)) { var buffer = new byte[size + 1]; var read = cachingStream.ReadBlock(buffer, 0, buffer.Length); Assert.AreEqual(size, read); Assert.AreEqual(data, buffer.Take(size)); Assert.AreEqual(size, (int)cachingStream.Position); } }