add stream parser
This commit is contained in:
parent
33e15895d3
commit
9899e5bfbd
5 changed files with 273 additions and 6 deletions
|
|
@ -1,8 +1,9 @@
|
|||
<?php
|
||||
|
||||
use Deblan\Csv\CsvParser;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class CsvParserParserTest extends \PHPUnit_Framework_TestCase
|
||||
class CsvParserTest extends TestCase
|
||||
{
|
||||
public function testGettersAndSettersAndDefaultValues()
|
||||
{
|
||||
|
|
|
|||
176
tests/CsvStreamParserTest.php
Normal file
176
tests/CsvStreamParserTest.php
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
<?php
|
||||
|
||||
use Deblan\Csv\CsvParser;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Deblan\Csv\CsvStreamParser;
|
||||
|
||||
class CsvParserParserTest extends CsvParserTest
|
||||
{
|
||||
public function testStreamParser()
|
||||
{
|
||||
$parser = new CsvStreamParser();
|
||||
$this->assertEquals([], $parser->getDatas());
|
||||
$this->assertEquals([], $parser->getHeaders());
|
||||
|
||||
$parser = new CsvStreamParser();
|
||||
$this->expectException('\InvalidArgumentException');
|
||||
$parser->parseStream(null);
|
||||
}
|
||||
|
||||
public function testStreamParser2()
|
||||
{
|
||||
$parser = new CsvStreamParser();
|
||||
$parser->setHasHeaders(true);
|
||||
|
||||
$parser->parseStream(fopen(__DIR__.'/fixtures/example.csv', 'r'));
|
||||
$this->assertEquals([], $parser->getDatas());
|
||||
$this->assertEquals([], $parser->getHeaders());
|
||||
|
||||
$this->assertEquals([
|
||||
'FOO',
|
||||
'BAR',
|
||||
], $parser->getData());
|
||||
$this->assertEquals([], $parser->getDatas());
|
||||
$this->assertEquals(['FOO', 'BAR'], $parser->getHeaders());
|
||||
|
||||
$this->assertEquals([
|
||||
'foo 1',
|
||||
'bar 1',
|
||||
'FOO' => 'foo 1',
|
||||
'BAR' => 'bar 1',
|
||||
], $parser->getData());
|
||||
$this->assertEquals([
|
||||
[
|
||||
'foo 1',
|
||||
'bar 1',
|
||||
'FOO' => 'foo 1',
|
||||
'BAR' => 'bar 1',
|
||||
],
|
||||
], $parser->getDatas());
|
||||
$this->assertEquals(['FOO', 'BAR'], $parser->getHeaders());
|
||||
|
||||
$parser->getData();
|
||||
$this->assertEquals([
|
||||
[
|
||||
'foo 1',
|
||||
'bar 1',
|
||||
'FOO' => 'foo 1',
|
||||
'BAR' => 'bar 1',
|
||||
],
|
||||
[
|
||||
'foo 2',
|
||||
'bar 2',
|
||||
'FOO' => 'foo 2',
|
||||
'BAR' => 'bar 2',
|
||||
],
|
||||
], $parser->getDatas());
|
||||
$this->assertEquals(['FOO', 'BAR'], $parser->getHeaders());
|
||||
|
||||
$parser->getData();
|
||||
$this->assertEquals([
|
||||
[
|
||||
'foo 1',
|
||||
'bar 1',
|
||||
'FOO' => 'foo 1',
|
||||
'BAR' => 'bar 1',
|
||||
],
|
||||
[
|
||||
'foo 2',
|
||||
'bar 2',
|
||||
'FOO' => 'foo 2',
|
||||
'BAR' => 'bar 2',
|
||||
],
|
||||
[
|
||||
'foo 3',
|
||||
'bar 3',
|
||||
'FOO' => 'foo 3',
|
||||
'BAR' => 'bar 3',
|
||||
],
|
||||
], $parser->getDatas());
|
||||
$this->assertEquals(['FOO', 'BAR'], $parser->getHeaders());
|
||||
}
|
||||
|
||||
public function testStreamParser3()
|
||||
{
|
||||
$parser = new CsvStreamParser();
|
||||
$parser->setHasHeaders(false);
|
||||
|
||||
$parser->parseStream(fopen(__DIR__.'/fixtures/example.csv', 'r'));
|
||||
$this->assertEquals([], $parser->getDatas());
|
||||
$this->assertEquals([], $parser->getHeaders());
|
||||
|
||||
$this->assertEquals([
|
||||
'FOO',
|
||||
'BAR'
|
||||
], $parser->getData());
|
||||
$this->assertEquals([
|
||||
[
|
||||
'FOO',
|
||||
'BAR'
|
||||
]
|
||||
], $parser->getDatas());
|
||||
$this->assertEquals([], $parser->getHeaders());
|
||||
|
||||
$this->assertEquals([
|
||||
'foo 1',
|
||||
'bar 1',
|
||||
], $parser->getData());
|
||||
$this->assertEquals([
|
||||
[
|
||||
'FOO',
|
||||
'BAR',
|
||||
],
|
||||
[
|
||||
'foo 1',
|
||||
'bar 1',
|
||||
],
|
||||
], $parser->getDatas());
|
||||
$this->assertEquals([], $parser->getHeaders());
|
||||
|
||||
$this->assertEquals([
|
||||
'foo 2',
|
||||
'bar 2',
|
||||
], $parser->getData());
|
||||
$this->assertEquals([
|
||||
[
|
||||
'FOO',
|
||||
'BAR',
|
||||
],
|
||||
[
|
||||
'foo 1',
|
||||
'bar 1',
|
||||
],
|
||||
[
|
||||
'foo 2',
|
||||
'bar 2',
|
||||
],
|
||||
], $parser->getDatas());
|
||||
$this->assertEquals([], $parser->getHeaders());
|
||||
|
||||
$this->assertEquals([
|
||||
'foo 3',
|
||||
'bar 3',
|
||||
], $parser->getData());
|
||||
$this->assertEquals([
|
||||
[
|
||||
'FOO',
|
||||
'BAR',
|
||||
],
|
||||
[
|
||||
'foo 1',
|
||||
'bar 1',
|
||||
],
|
||||
[
|
||||
'foo 2',
|
||||
'bar 2',
|
||||
],
|
||||
[
|
||||
'foo 3',
|
||||
'bar 3',
|
||||
],
|
||||
], $parser->getDatas());
|
||||
$this->assertEquals([], $parser->getHeaders());
|
||||
|
||||
$this->assertEquals(null, $parser->getData());
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue