public function testStream_WriteAndReadDataScenario() { $local = $this->basePath(); $writer = new Stream(fopen("file://{$local}/temp", 'w+')); $reader = new Stream(fopen("file://{$local}/temp", 'r+')); $expectedData = "qwertyuiop\n"; $capturedData = null; $readData = null; $reader->on('data', function ($origin, $data) use(&$capturedData) { $capturedData = $data; }); $reader->on('error', $this->expectCallableNever()); $reader->on('close', $this->expectCallableOnce()); $writer->on('drain', $this->expectCallableOnce()); $writer->on('error', $this->expectCallableNever()); $writer->on('close', $this->expectCallableOnce()); $writer->write($expectedData); $readData = $reader->read(); $writer->close(); $reader->close(); $this->assertEquals($expectedData, $readData); $this->assertEquals($expectedData, $capturedData); }
/** * Handle close. * * @internal */ public function handleClose() { $this->pause(); parent::handleClose(); }