NoSeekStreamTest.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace GuzzleHttp\Tests\Psr7;
  3. use GuzzleHttp\Psr7;
  4. use GuzzleHttp\Psr7\NoSeekStream;
  5. /**
  6. * @covers GuzzleHttp\Psr7\NoSeekStream
  7. * @covers GuzzleHttp\Psr7\StreamDecoratorTrait
  8. */
  9. class NoSeekStreamTest extends BaseTest
  10. {
  11. /**
  12. * @expectedException \RuntimeException
  13. * @expectedExceptionMessage Cannot seek a NoSeekStream
  14. */
  15. public function testCannotSeek()
  16. {
  17. $s = $this->getMockBuilder('Psr\Http\Message\StreamInterface')
  18. ->setMethods(['isSeekable', 'seek'])
  19. ->getMockForAbstractClass();
  20. $s->expects($this->never())->method('seek');
  21. $s->expects($this->never())->method('isSeekable');
  22. $wrapped = new NoSeekStream($s);
  23. $this->assertFalse($wrapped->isSeekable());
  24. $wrapped->seek(2);
  25. }
  26. public function testToStringDoesNotSeek()
  27. {
  28. $s = \GuzzleHttp\Psr7\stream_for('foo');
  29. $s->seek(1);
  30. $wrapped = new NoSeekStream($s);
  31. $this->assertEquals('oo', (string) $wrapped);
  32. $wrapped->close();
  33. }
  34. }