a54dae238f30df94341ffdbff006daea261d89ce
[yaffs-website] / vendor / psy / psysh / test / CodeCleaner / UseStatementPassTest.php
1 <?php
2
3 /*
4  * This file is part of Psy Shell.
5  *
6  * (c) 2012-2018 Justin Hileman
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Psy\Test\CodeCleaner;
13
14 use Psy\CodeCleaner\UseStatementPass;
15
16 class UseStatementPassTest extends CodeCleanerTestCase
17 {
18     public function setUp()
19     {
20         $this->setPass(new UseStatementPass());
21     }
22
23     /**
24      * @dataProvider useStatements
25      */
26     public function testProcess($from, $to)
27     {
28         $this->assertProcessesAs($from, $to);
29     }
30
31     public function useStatements()
32     {
33         return [
34             [
35                 "use StdClass as NotSoStd;\n\$std = new NotSoStd();",
36                 '$std = new \\StdClass();',
37             ],
38             [
39                 "namespace Foo;\n\nuse StdClass as S;\n\$std = new S();",
40                 "namespace Foo;\n\n\$std = new \\StdClass();",
41             ],
42             [
43                 "namespace Foo;\n\nuse \\StdClass as S;\n\$std = new S();",
44                 "namespace Foo;\n\n\$std = new \\StdClass();",
45             ],
46             [
47                 "use Foo\\Bar as fb;\n\$baz = new fb\\Baz();",
48                 '$baz = new \\Foo\\Bar\\Baz();',
49             ],
50             [
51                 "use Foo\\Bar;\n\$baz = new Bar\\Baz();",
52                 '$baz = new \\Foo\\Bar\\Baz();',
53             ],
54             [
55                 "namespace Foo;\nuse Bar;\n\$baz = new Bar\\Baz();",
56                 "namespace Foo;\n\n\$baz = new \\Bar\\Baz();",
57             ],
58         ];
59     }
60 }