* This file is licensed under the Licensed under the MIT license: * http://opensource.org/licenses/MIT */ namespace Icewind\Streams\Tests; class PartialWrapper extends \Icewind\Streams\NullWrapper { /** * Wraps a stream with the provided callbacks * * @param resource $source * @return resource * * @throws \BadMethodCallException */ public static function wrap($source) { $context = stream_context_create(array( 'null' => array( 'source' => $source) )); return self::wrapSource($source, $context, 'partial', '\Icewind\Streams\Tests\PartialWrapper'); } public function stream_read($count) { $count = min($count, 2); // return as most 2 bytes return parent::stream_read($count); } public function stream_write($data) { $data = substr($data, 0, 2); //write as most 2 bytes return parent::stream_write($data); } } class RetryWrapper extends Wrapper { /** * @param resource $source * @return resource */ protected function wrapSource($source) { return \Icewind\Streams\RetryWrapper::wrap(PartialWrapper::wrap($source)); } public function testReadDir() { $this->markTestSkipped('directories not supported'); } public function testRewindDir() { $this->markTestSkipped('directories not supported'); } }