/** @dataProvider provideTestParseAndDump */ public function testParseAndDump($name, $code, $expectedDump) { $astTraverser = new PhpParser\NodeTraverser(); $astTraverser->addVisitor(new PhpParser\NodeVisitor\NameResolver()); $parser = new Parser((new ParserFactory())->create(ParserFactory::PREFER_PHP7), $astTraverser); $block = $parser->parse($code, 'foo.php'); $traverser = new Traverser(); $traverser->addVisitor(new Visitor\Simplifier()); $traverser->traverse($block); $printer = new Printer\Text(); $this->assertEquals($this->canonicalize($expectedDump), $this->canonicalize($printer->printCfg([$block]))); }
/** @dataProvider provideTestParseAndDump */ public function testParseAndDump($code, $expectedDump) { $astTraverser = new PhpParser\NodeTraverser(); $astTraverser->addVisitor(new PhpParser\NodeVisitor\NameResolver()); $parser = new Parser((new ParserFactory())->create(ParserFactory::PREFER_PHP7), $astTraverser); $traverser = new Traverser(); $traverser->addVisitor(new Visitor\Simplifier()); $printer = new Printer\Text(); try { $script = $parser->parse($code, 'foo.php'); $traverser->traverse($script); $result = $printer->printScript($script); } catch (\RuntimeException $e) { $result = $e->getMessage(); } $this->assertEquals($this->canonicalize($expectedDump), $this->canonicalize($result)); }