comparison vendor/nikic/php-parser/test/PhpParser/Builder/NamespaceTest.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 5fb285c0d0e3
comparison
equal deleted inserted replaced
-1:000000000000 0:4c8ae668cc8c
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 }