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