177 lines
4.5 KiB
PHP
177 lines
4.5 KiB
PHP
<?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());
|
|
}
|
|
}
|