You are here

NoSeekStreamTest.php in Zircon Profile 8

Same filename and directory in other branches
  1. 8.0 vendor/guzzlehttp/psr7/tests/NoSeekStreamTest.php

File

vendor/guzzlehttp/psr7/tests/NoSeekStreamTest.php
View source
<?php

namespace GuzzleHttp\Tests\Psr7;

use GuzzleHttp\Psr7;
use GuzzleHttp\Psr7\NoSeekStream;

/**
 * @covers GuzzleHttp\Psr7\NoSeekStream
 * @covers GuzzleHttp\Psr7\StreamDecoratorTrait
 */
class NoSeekStreamTest extends \PHPUnit_Framework_TestCase {

  /**
   * @expectedException \RuntimeException
   * @expectedExceptionMessage Cannot seek a NoSeekStream
   */
  public function testCannotSeek() {
    $s = $this
      ->getMockBuilder('Psr\\Http\\Message\\StreamInterface')
      ->setMethods([
      'isSeekable',
      'seek',
    ])
      ->getMockForAbstractClass();
    $s
      ->expects($this
      ->never())
      ->method('seek');
    $s
      ->expects($this
      ->never())
      ->method('isSeekable');
    $wrapped = new NoSeekStream($s);
    $this
      ->assertFalse($wrapped
      ->isSeekable());
    $wrapped
      ->seek(2);
  }

  /**
   * @expectedException \RuntimeException
   * @expectedExceptionMessage Cannot write to a non-writable stream
   */
  public function testHandlesClose() {
    $s = Psr7\stream_for('foo');
    $wrapped = new NoSeekStream($s);
    $wrapped
      ->close();
    $wrapped
      ->write('foo');
  }

}