lithium\tests\cases\analysis\ParserTest::testFindingTokenPatterns PHP Method

testFindingTokenPatterns() public method

    public function testFindingTokenPatterns()
    {
        $code = file_get_contents(Libraries::path('lithium\\analysis\\Parser'));
        $expected = array('tokenize', 'matchToken', '_prepareMatchParams', 'token');
        $results = array_values(array_unique(array_map(function ($i) {
            return $i[0];
        }, Parser::find($code, 'static::_(*)', array('capture' => array('T_STRING'), 'return' => 'content')))));
        $this->assertEqual($expected, $results);
        $expected = array('lithium\\util\\Set', 'lithium\\util\\Collection');
        $results = array_map(function ($i) {
            return join('', $i);
        }, $results = Parser::find($code, 'use *;', array('return' => 'content', 'lineBreaks' => true, 'startOfLine' => true, 'capture' => array('T_STRING', 'T_NS_SEPARATOR'))));
        $this->assertEqual($expected, $results);
        $code = 'function test($options) { return function($foo) use ($options) {';
        $code .= ' ClassName::method($options); ' . "\n" . ' $foo->method($options); }; }';
        list($results) = Parser::find($code, '_::_(', array('capture' => array('T_STRING'), 'return' => 'content'));
        $expected = array('ClassName', 'method');
        $this->assertEqual($expected, $results);
    }