/** * {@inheritdoc} */ public function readLine($removeLineBreak = false) { if (null === $this->getResource() && $this->buffer->isEmpty()) { throw new ReadingFinishedException(); } while (true) { if (null !== $this->getResource()) { $this->buffer->append(fread($this->getResource(), $this->chunkSize)); if (feof($this->getResource())) { $this->close(); } } if ($this->buffer->hasLineBreak()) { $line = $this->buffer->readUntilLineBreak(); return $removeLineBreak ? $line : $line . $this->buffer->getLastLineBreak(); } if (null === $this->getResource()) { $remain = $this->buffer->getContent(); $this->buffer->clear(); return $remain; } } }
/** * @dataProvider getHasLineBreakData */ public function testHasLineBreak($lineBreak, $content, $hasLineBreak) { $buffer = new Buffer($lineBreak); $buffer->append($content); $this->assertEquals($hasLineBreak, $buffer->hasLineBreak()); }