PhpParser\CodeParsingTest::testParse PHP Method

testParse() public method

public testParse ( $name, $code, $expected, $modeLine )
    public function testParse($name, $code, $expected, $modeLine)
    {
        if (null !== $modeLine) {
            $modes = array_fill_keys(explode(',', $modeLine), true);
        } else {
            $modes = [];
        }
        $lexer = new Lexer\Emulative(array('usedAttributes' => array('startLine', 'endLine', 'startFilePos', 'endFilePos', 'comments')));
        $parser5 = new Parser\Php5($lexer);
        $parser7 = new Parser\Php7($lexer);
        $dumpPositions = isset($modes['positions']);
        $output5 = $this->getParseOutput($parser5, $code, $dumpPositions);
        $output7 = $this->getParseOutput($parser7, $code, $dumpPositions);
        if (isset($modes['php5'])) {
            $this->assertSame($expected, $output5, $name);
            $this->assertNotSame($expected, $output7, $name);
        } else {
            if (isset($modes['php7'])) {
                $this->assertNotSame($expected, $output5, $name);
                $this->assertSame($expected, $output7, $name);
            } else {
                $this->assertSame($expected, $output5, $name);
                $this->assertSame($expected, $output7, $name);
            }
        }
    }