You are here

PumpStreamTest.php in Zircon Profile 8

Same filename and directory in other branches
  1. 8.0 vendor/guzzlehttp/psr7/tests/PumpStreamTest.php

File

vendor/guzzlehttp/psr7/tests/PumpStreamTest.php
View source
<?php

namespace GuzzleHttp\Tests\Psr7;

use GuzzleHttp\Psr7\LimitStream;
use GuzzleHttp\Psr7\PumpStream;
use GuzzleHttp\Psr7;
class PumpStreamTest extends \PHPUnit_Framework_TestCase {
  public function testHasMetadataAndSize() {
    $p = new PumpStream(function () {
    }, [
      'metadata' => [
        'foo' => 'bar',
      ],
      'size' => 100,
    ]);
    $this
      ->assertEquals('bar', $p
      ->getMetadata('foo'));
    $this
      ->assertEquals([
      'foo' => 'bar',
    ], $p
      ->getMetadata());
    $this
      ->assertEquals(100, $p
      ->getSize());
  }
  public function testCanReadFromCallable() {
    $p = Psr7\stream_for(function ($size) {
      return 'a';
    });
    $this
      ->assertEquals('a', $p
      ->read(1));
    $this
      ->assertEquals(1, $p
      ->tell());
    $this
      ->assertEquals('aaaaa', $p
      ->read(5));
    $this
      ->assertEquals(6, $p
      ->tell());
  }
  public function testStoresExcessDataInBuffer() {
    $called = [];
    $p = Psr7\stream_for(function ($size) use (&$called) {
      $called[] = $size;
      return 'abcdef';
    });
    $this
      ->assertEquals('a', $p
      ->read(1));
    $this
      ->assertEquals('b', $p
      ->read(1));
    $this
      ->assertEquals('cdef', $p
      ->read(4));
    $this
      ->assertEquals('abcdefabc', $p
      ->read(9));
    $this
      ->assertEquals([
      1,
      9,
      3,
    ], $called);
  }
  public function testInifiniteStreamWrappedInLimitStream() {
    $p = Psr7\stream_for(function () {
      return 'a';
    });
    $s = new LimitStream($p, 5);
    $this
      ->assertEquals('aaaaa', (string) $s);
  }
  public function testDescribesCapabilities() {
    $p = Psr7\stream_for(function () {
    });
    $this
      ->assertTrue($p
      ->isReadable());
    $this
      ->assertFalse($p
      ->isSeekable());
    $this
      ->assertFalse($p
      ->isWritable());
    $this
      ->assertNull($p
      ->getSize());
    $this
      ->assertEquals('', $p
      ->getContents());
    $this
      ->assertEquals('', (string) $p);
    $p
      ->close();
    $this
      ->assertEquals('', $p
      ->read(10));
    $this
      ->assertTrue($p
      ->eof());
    try {
      $this
        ->assertFalse($p
        ->write('aa'));
      $this
        ->fail();
    } catch (\RuntimeException $e) {
    }
  }

}

Classes

Namesort descending Description
PumpStreamTest