1 <?php declare(strict_types=1);
3 namespace PhpParser\Builder;
5 use PhpParser\Comment\Doc;
7 use PhpParser\Node\Stmt;
8 use PHPUnit\Framework\TestCase;
10 class NamespaceTest extends TestCase
12 protected function createNamespaceBuilder($fqn) {
13 return new Namespace_($fqn);
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]]
27 $node = $this->createNamespaceBuilder('Name\Space')
29 ->addStmts([$stmt2, $stmt3])
30 ->setDocComment($docComment)
33 $this->assertEquals($expected, $node);
35 $node = $this->createNamespaceBuilder(new Node\Name(['Name', 'Space']))
36 ->setDocComment($docComment)
37 ->addStmts([$stmt1, $stmt2])
41 $this->assertEquals($expected, $node);
43 $node = $this->createNamespaceBuilder(null)->getNode();
44 $this->assertNull($node->name);
45 $this->assertEmpty($node->stmts);