class FnStreamTest in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/guzzlehttp/psr7/tests/FnStreamTest.php \GuzzleHttp\Tests\Psr7\FnStreamTest
@covers GuzzleHttp\Psr7\FnStream
Hierarchy
- class \GuzzleHttp\Tests\Psr7\FnStreamTest extends \GuzzleHttp\Tests\Psr7\PHPUnit_Framework_TestCase
Expanded class hierarchy of FnStreamTest
File
- vendor/
guzzlehttp/ psr7/ tests/ FnStreamTest.php, line 10
Namespace
GuzzleHttp\Tests\Psr7View source
class FnStreamTest extends \PHPUnit_Framework_TestCase {
/**
* @expectedException \BadMethodCallException
* @expectedExceptionMessage seek() is not implemented in the FnStream
*/
public function testThrowsWhenNotImplemented() {
(new FnStream([]))
->seek(1);
}
public function testProxiesToFunction() {
$s = new FnStream([
'read' => function ($len) {
$this
->assertEquals(3, $len);
return 'foo';
},
]);
$this
->assertEquals('foo', $s
->read(3));
}
public function testCanCloseOnDestruct() {
$called = false;
$s = new FnStream([
'close' => function () use (&$called) {
$called = true;
},
]);
unset($s);
$this
->assertTrue($called);
}
public function testDoesNotRequireClose() {
$s = new FnStream([]);
unset($s);
}
public function testDecoratesStream() {
$a = Psr7\stream_for('foo');
$b = FnStream::decorate($a, []);
$this
->assertEquals(3, $b
->getSize());
$this
->assertEquals($b
->isWritable(), true);
$this
->assertEquals($b
->isReadable(), true);
$this
->assertEquals($b
->isSeekable(), true);
$this
->assertEquals($b
->read(3), 'foo');
$this
->assertEquals($b
->tell(), 3);
$this
->assertEquals($a
->tell(), 3);
$this
->assertSame('', $a
->read(1));
$this
->assertEquals($b
->eof(), true);
$this
->assertEquals($a
->eof(), true);
$b
->seek(0);
$this
->assertEquals('foo', (string) $b);
$b
->seek(0);
$this
->assertEquals('foo', $b
->getContents());
$this
->assertEquals($a
->getMetadata(), $b
->getMetadata());
$b
->seek(0, SEEK_END);
$b
->write('bar');
$this
->assertEquals('foobar', (string) $b);
$this
->assertInternalType('resource', $b
->detach());
$b
->close();
}
public function testDecoratesWithCustomizations() {
$called = false;
$a = Psr7\stream_for('foo');
$b = FnStream::decorate($a, [
'read' => function ($len) use (&$called, $a) {
$called = true;
return $a
->read($len);
},
]);
$this
->assertEquals('foo', $b
->read(3));
$this
->assertTrue($called);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
FnStreamTest:: |
public | function | ||
FnStreamTest:: |
public | function | ||
FnStreamTest:: |
public | function | ||
FnStreamTest:: |
public | function | ||
FnStreamTest:: |
public | function | ||
FnStreamTest:: |
public | function | @expectedException \BadMethodCallException @expectedExceptionMessage seek() is not implemented in the FnStream |