NoSeekStreamTest.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace GuzzleHttp\Tests\Stream;
  3. use GuzzleHttp\Stream\Stream;
  4. use GuzzleHttp\Stream\NoSeekStream;
  5. use PHPUnit\Framework\TestCase;
  6. /**
  7. * @covers GuzzleHttp\Stream\NoSeekStream
  8. * @covers GuzzleHttp\Stream\StreamDecoratorTrait
  9. */
  10. class NoSeekStreamTest extends TestCase
  11. {
  12. public function testCannotSeek()
  13. {
  14. $s = $this->getMockBuilder('GuzzleHttp\Stream\StreamInterface')
  15. ->setMethods(['isSeekable', 'seek'])
  16. ->getMockForAbstractClass();
  17. $s->expects($this->never())->method('seek');
  18. $s->expects($this->never())->method('isSeekable');
  19. $wrapped = new NoSeekStream($s);
  20. $this->assertFalse($wrapped->isSeekable());
  21. $this->assertFalse($wrapped->seek(2));
  22. }
  23. public function testHandlesClose()
  24. {
  25. $s = Stream::factory('foo');
  26. $wrapped = new NoSeekStream($s);
  27. $wrapped->close();
  28. $this->assertFalse($wrapped->write('foo'));
  29. }
  30. public function testCanAttach()
  31. {
  32. $s1 = Stream::factory('foo');
  33. $s2 = Stream::factory('bar');
  34. $wrapped = new NoSeekStream($s1);
  35. $wrapped->attach($s2->detach());
  36. $this->assertEquals('bar', (string) $wrapped);
  37. }
  38. }