diff options
Diffstat (limited to 'vendor/ringcentral/psr7/tests/LazyOpenStreamTest.php')
-rw-r--r-- | vendor/ringcentral/psr7/tests/LazyOpenStreamTest.php | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/vendor/ringcentral/psr7/tests/LazyOpenStreamTest.php b/vendor/ringcentral/psr7/tests/LazyOpenStreamTest.php new file mode 100644 index 0000000..ca0c18e --- /dev/null +++ b/vendor/ringcentral/psr7/tests/LazyOpenStreamTest.php @@ -0,0 +1,64 @@ +<?php +namespace RingCentral\Tests\Psr7; + +use RingCentral\Psr7\LazyOpenStream; + +class LazyOpenStreamTest extends \PHPUnit_Framework_TestCase +{ + private $fname; + + public function setup() + { + $this->fname = tempnam('/tmp', 'tfile'); + + if (file_exists($this->fname)) { + unlink($this->fname); + } + } + + public function tearDown() + { + if (file_exists($this->fname)) { + unlink($this->fname); + } + } + + public function testOpensLazily() + { + $l = new LazyOpenStream($this->fname, 'w+'); + $l->write('foo'); + $this->assertInternalType('array', $l->getMetadata()); + $this->assertFileExists($this->fname); + $this->assertEquals('foo', file_get_contents($this->fname)); + $this->assertEquals('foo', (string) $l); + } + + public function testProxiesToFile() + { + file_put_contents($this->fname, 'foo'); + $l = new LazyOpenStream($this->fname, 'r'); + $this->assertEquals('foo', $l->read(4)); + $this->assertTrue($l->eof()); + $this->assertEquals(3, $l->tell()); + $this->assertTrue($l->isReadable()); + $this->assertTrue($l->isSeekable()); + $this->assertFalse($l->isWritable()); + $l->seek(1); + $this->assertEquals('oo', $l->getContents()); + $this->assertEquals('foo', (string) $l); + $this->assertEquals(3, $l->getSize()); + $this->assertInternalType('array', $l->getMetadata()); + $l->close(); + } + + public function testDetachesUnderlyingStream() + { + file_put_contents($this->fname, 'foo'); + $l = new LazyOpenStream($this->fname, 'r'); + $r = $l->detach(); + $this->assertInternalType('resource', $r); + fseek($r, 0); + $this->assertEquals('foo', stream_get_contents($r)); + fclose($r); + } +} |