DroppingStreamTest.php 934 B

123456789101112131415161718192021222324252627282930
  1. <?php
  2. declare(strict_types=1);
  3. namespace GuzzleHttp\Tests\Psr7;
  4. use GuzzleHttp\Psr7\BufferStream;
  5. use GuzzleHttp\Psr7\DroppingStream;
  6. use PHPUnit\Framework\TestCase;
  7. class DroppingStreamTest extends TestCase
  8. {
  9. public function testBeginsDroppingWhenSizeExceeded(): void
  10. {
  11. $stream = new BufferStream();
  12. $drop = new DroppingStream($stream, 5);
  13. self::assertSame(3, $drop->write('hel'));
  14. self::assertSame(2, $drop->write('lo'));
  15. self::assertSame(5, $drop->getSize());
  16. self::assertSame('hello', $drop->read(5));
  17. self::assertSame(0, $drop->getSize());
  18. $drop->write('12345678910');
  19. self::assertSame(5, $stream->getSize());
  20. self::assertSame(5, $drop->getSize());
  21. self::assertSame('12345', (string) $drop);
  22. self::assertSame(0, $drop->getSize());
  23. $drop->write('hello');
  24. self::assertSame(0, $drop->write('test'));
  25. }
  26. }