createMock(StreamInterface::class); $s->expects(self::never())->method('seek'); $s->expects(self::never())->method('isSeekable'); $wrapped = new NoSeekStream($s); self::assertFalse($wrapped->isSeekable()); $this->expectException(\RuntimeException::class); $this->expectExceptionMessage('Cannot seek a NoSeekStream'); $wrapped->seek(2); } public function testToStringDoesNotSeek(): void { $s = \GuzzleHttp\Psr7\Utils::streamFor('foo'); $s->seek(1); $wrapped = new NoSeekStream($s); self::assertSame('oo', (string) $wrapped); $wrapped->close(); } }