88131fc33d5f628ac6ac175f879cc550db45eabc
[yaffs-website] / vendor / nikic / php-parser / test / PhpParser / Builder / NamespaceTest.php
1 <?php
2
3 namespace PhpParser\Builder;
4
5 use PhpParser\Comment\Doc;
6 use PhpParser\Node;
7 use PhpParser\Node\Stmt;
8
9 class NamespaceTest extends \PHPUnit_Framework_TestCase
10 {
11     protected function createNamespaceBuilder($fqn) {
12         return new Namespace_($fqn);
13     }
14
15     public function testCreation() {
16         $stmt1 = new Stmt\Class_('SomeClass');
17         $stmt2 = new Stmt\Interface_('SomeInterface');
18         $stmt3 = new Stmt\Function_('someFunction');
19         $docComment = new Doc('/** Test */');
20         $expected = new Stmt\Namespace_(
21             new Node\Name('Name\Space'),
22             array($stmt1, $stmt2, $stmt3),
23             array('comments' => array($docComment))
24         );
25
26         $node = $this->createNamespaceBuilder('Name\Space')
27             ->addStmt($stmt1)
28             ->addStmts(array($stmt2, $stmt3))
29             ->setDocComment($docComment)
30             ->getNode()
31         ;
32         $this->assertEquals($expected, $node);
33
34         $node = $this->createNamespaceBuilder(new Node\Name(array('Name', 'Space')))
35             ->setDocComment($docComment)
36             ->addStmts(array($stmt1, $stmt2))
37             ->addStmt($stmt3)
38             ->getNode()
39         ;
40         $this->assertEquals($expected, $node);
41
42         $node = $this->createNamespaceBuilder(null)->getNode();
43         $this->assertNull($node->name);
44         $this->assertEmpty($node->stmts);
45     }
46 }