Added the Search API Synonym module to deal specifically with licence and license...
[yaffs-website] / vendor / phpunit / php-token-stream / tests / Token / FunctionTest.php
1 <?php
2 /*
3  * This file is part of the PHP_TokenStream package.
4  *
5  * (c) Sebastian Bergmann <sebastian@phpunit.de>
6  *
7  * For the full copyright and license information, please view the LICENSE
8  * file that was distributed with this source code.
9  */
10
11 /**
12  * Tests for the PHP_Token_FUNCTION class.
13  *
14  * @package    PHP_TokenStream
15  * @subpackage Tests
16  * @author     Sebastian Bergmann <sebastian@phpunit.de>
17  * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
18  * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
19  * @version    Release: @package_version@
20  * @link       http://github.com/sebastianbergmann/php-token-stream/
21  * @since      Class available since Release 1.0.0
22  */
23 class PHP_Token_FunctionTest extends PHPUnit_Framework_TestCase
24 {
25     protected $functions;
26
27     protected function setUp()
28     {
29         $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'source.php');
30
31         foreach ($ts as $token) {
32             if ($token instanceof PHP_Token_FUNCTION) {
33                 $this->functions[] = $token;
34             }
35         }
36     }
37
38     /**
39      * @covers PHP_Token_FUNCTION::getArguments
40      */
41     public function testGetArguments()
42     {
43         $this->assertEquals(array(), $this->functions[0]->getArguments());
44
45         $this->assertEquals(
46           array('$baz' => 'Baz'), $this->functions[1]->getArguments()
47         );
48
49         $this->assertEquals(
50           array('$foobar' => 'Foobar'), $this->functions[2]->getArguments()
51         );
52
53         $this->assertEquals(
54           array('$barfoo' => 'Barfoo'), $this->functions[3]->getArguments()
55         );
56
57         $this->assertEquals(array(), $this->functions[4]->getArguments());
58
59         $this->assertEquals(array('$x' => null, '$y' => null), $this->functions[5]->getArguments());
60     }
61
62     /**
63      * @covers PHP_Token_FUNCTION::getName
64      */
65     public function testGetName()
66     {
67         $this->assertEquals('foo', $this->functions[0]->getName());
68         $this->assertEquals('bar', $this->functions[1]->getName());
69         $this->assertEquals('foobar', $this->functions[2]->getName());
70         $this->assertEquals('barfoo', $this->functions[3]->getName());
71         $this->assertEquals('baz', $this->functions[4]->getName());
72     }
73
74     /**
75      * @covers PHP_Token::getLine
76      */
77     public function testGetLine()
78     {
79         $this->assertEquals(5, $this->functions[0]->getLine());
80         $this->assertEquals(10, $this->functions[1]->getLine());
81         $this->assertEquals(17, $this->functions[2]->getLine());
82         $this->assertEquals(21, $this->functions[3]->getLine());
83         $this->assertEquals(29, $this->functions[4]->getLine());
84     }
85
86     /**
87      * @covers PHP_TokenWithScope::getEndLine
88      */
89     public function testGetEndLine()
90     {
91         $this->assertEquals(5, $this->functions[0]->getEndLine());
92         $this->assertEquals(12, $this->functions[1]->getEndLine());
93         $this->assertEquals(19, $this->functions[2]->getEndLine());
94         $this->assertEquals(23, $this->functions[3]->getEndLine());
95         $this->assertEquals(31, $this->functions[4]->getEndLine());
96     }
97
98     /**
99      * @covers PHP_Token_FUNCTION::getDocblock
100      */
101     public function testGetDocblock()
102     {
103         $this->assertNull($this->functions[0]->getDocblock());
104
105         $this->assertEquals(
106           "/**\n     * @param Baz \$baz\n     */",
107           $this->functions[1]->getDocblock()
108         );
109
110         $this->assertEquals(
111           "/**\n     * @param Foobar \$foobar\n     */",
112           $this->functions[2]->getDocblock()
113         );
114
115         $this->assertNull($this->functions[3]->getDocblock());
116         $this->assertNull($this->functions[4]->getDocblock());
117     }
118
119     public function testSignature()
120     {
121         $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'source5.php');
122         $f  = $ts->getFunctions();
123         $c  = $ts->getClasses();
124         $i  = $ts->getInterfaces();
125
126         $this->assertEquals(
127           'foo($a, array $b, array $c = array())',
128           $f['foo']['signature']
129         );
130
131         $this->assertEquals(
132           'm($a, array $b, array $c = array())',
133           $c['c']['methods']['m']['signature']
134         );
135
136         $this->assertEquals(
137           'm($a, array $b, array $c = array())',
138           $c['a']['methods']['m']['signature']
139         );
140
141         $this->assertEquals(
142           'm($a, array $b, array $c = array())',
143           $i['i']['methods']['m']['signature']
144         );
145     }
146 }