NoSeekStreamTest.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. declare(strict_types=1);
  3. namespace GuzzleHttp\Tests\Psr7;
  4. use GuzzleHttp\Psr7\NoSeekStream;
  5. use PHPUnit\Framework\TestCase;
  6. use Psr\Http\Message\StreamInterface;
  7. /**
  8. * @covers \GuzzleHttp\Psr7\NoSeekStream
  9. * @covers \GuzzleHttp\Psr7\StreamDecoratorTrait
  10. */
  11. class NoSeekStreamTest extends TestCase
  12. {
  13. public function testCannotSeek(): void
  14. {
  15. $s = $this->createMock(StreamInterface::class);
  16. $s->expects(self::never())->method('seek');
  17. $s->expects(self::never())->method('isSeekable');
  18. $wrapped = new NoSeekStream($s);
  19. self::assertFalse($wrapped->isSeekable());
  20. $this->expectException(\RuntimeException::class);
  21. $this->expectExceptionMessage('Cannot seek a NoSeekStream');
  22. $wrapped->seek(2);
  23. }
  24. public function testToStringDoesNotSeek(): void
  25. {
  26. $s = \GuzzleHttp\Psr7\Utils::streamFor('foo');
  27. $s->seek(1);
  28. $wrapped = new NoSeekStream($s);
  29. self::assertSame('oo', (string) $wrapped);
  30. $wrapped->close();
  31. }
  32. }