73 lines
1.5 KiB
PHP
73 lines
1.5 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace PhpParser;
|
||
|
|
||
|
class NodeDumperTest extends \PHPUnit_Framework_TestCase
|
||
|
{
|
||
|
private function canonicalize($string) {
|
||
|
return str_replace("\r\n", "\n", $string);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @dataProvider provideTestDump
|
||
|
* @covers PhpParser\NodeDumper::dump
|
||
|
*/
|
||
|
public function testDump($node, $dump) {
|
||
|
$dumper = new NodeDumper;
|
||
|
|
||
|
$this->assertSame($this->canonicalize($dump), $this->canonicalize($dumper->dump($node)));
|
||
|
}
|
||
|
|
||
|
public function provideTestDump() {
|
||
|
return array(
|
||
|
array(
|
||
|
array(),
|
||
|
'array(
|
||
|
)'
|
||
|
),
|
||
|
array(
|
||
|
array('Foo', 'Bar', 'Key' => 'FooBar'),
|
||
|
'array(
|
||
|
0: Foo
|
||
|
1: Bar
|
||
|
Key: FooBar
|
||
|
)'
|
||
|
),
|
||
|
array(
|
||
|
new Node\Name(array('Hallo', 'World')),
|
||
|
'Name(
|
||
|
parts: array(
|
||
|
0: Hallo
|
||
|
1: World
|
||
|
)
|
||
|
)'
|
||
|
),
|
||
|
array(
|
||
|
new Node\Expr\Array_(array(
|
||
|
new Node\Expr\ArrayItem(new Node\Scalar\String_('Foo'))
|
||
|
)),
|
||
|
'Expr_Array(
|
||
|
items: array(
|
||
|
0: Expr_ArrayItem(
|
||
|
key: null
|
||
|
value: Scalar_String(
|
||
|
value: Foo
|
||
|
)
|
||
|
byRef: false
|
||
|
)
|
||
|
)
|
||
|
)'
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @expectedException \InvalidArgumentException
|
||
|
* @expectedExceptionMessage Can only dump nodes and arrays.
|
||
|
*/
|
||
|
public function testError() {
|
||
|
$dumper = new NodeDumper;
|
||
|
$dumper->dump(new \stdClass);
|
||
|
}
|
||
|
}
|