2017-11-02 18:56:01 +01:00
|
|
|
<?php declare(strict_types=1);
|
2015-07-12 22:53:04 +02:00
|
|
|
|
|
|
|
namespace PhpParser;
|
|
|
|
|
|
|
|
/* This test is very weak, because PHPUnit's assertEquals assertion is way too slow dealing with the
|
|
|
|
* large objects involved here. So we just do some basic instanceof tests instead. */
|
2017-04-27 18:14:07 +02:00
|
|
|
|
2019-01-19 11:18:00 +01:00
|
|
|
class ParserFactoryTest extends \PHPUnit\Framework\TestCase
|
2017-04-27 18:14:07 +02:00
|
|
|
{
|
2015-07-12 22:53:04 +02:00
|
|
|
/** @dataProvider provideTestCreate */
|
|
|
|
public function testCreate($kind, $lexer, $expected) {
|
|
|
|
$this->assertInstanceOf($expected, (new ParserFactory)->create($kind, $lexer));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function provideTestCreate() {
|
|
|
|
$lexer = new Lexer();
|
|
|
|
return [
|
|
|
|
[
|
|
|
|
ParserFactory::PREFER_PHP7, $lexer,
|
2018-01-13 16:08:17 +01:00
|
|
|
Parser\Multiple::class
|
2015-07-12 22:53:04 +02:00
|
|
|
],
|
|
|
|
[
|
|
|
|
ParserFactory::PREFER_PHP5, null,
|
2018-01-13 16:08:17 +01:00
|
|
|
Parser\Multiple::class
|
2015-07-12 22:53:04 +02:00
|
|
|
],
|
|
|
|
[
|
|
|
|
ParserFactory::ONLY_PHP7, null,
|
2018-01-13 16:08:17 +01:00
|
|
|
Parser\Php7::class
|
2015-07-12 22:53:04 +02:00
|
|
|
],
|
|
|
|
[
|
|
|
|
ParserFactory::ONLY_PHP5, $lexer,
|
2018-01-13 16:08:17 +01:00
|
|
|
Parser\Php5::class
|
2015-07-12 22:53:04 +02:00
|
|
|
]
|
|
|
|
];
|
|
|
|
}
|
2017-04-27 18:14:07 +02:00
|
|
|
}
|