annotate 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
rev   line source
Chris@0 1 <?php
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@0 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@0 22 array($stmt1, $stmt2, $stmt3),
Chris@0 23 array('comments' => array($docComment))
Chris@0 24 );
Chris@0 25
Chris@0 26 $node = $this->createNamespaceBuilder('Name\Space')
Chris@0 27 ->addStmt($stmt1)
Chris@0 28 ->addStmts(array($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@0 34 $node = $this->createNamespaceBuilder(new Node\Name(array('Name', 'Space')))
Chris@0 35 ->setDocComment($docComment)
Chris@0 36 ->addStmts(array($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 }