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