diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/nikic/php-parser/test/PhpParser/Builder/NamespaceTest.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,46 @@
+<?php
+
+namespace PhpParser\Builder;
+
+use PhpParser\Comment\Doc;
+use PhpParser\Node;
+use PhpParser\Node\Stmt;
+
+class NamespaceTest extends \PHPUnit_Framework_TestCase
+{
+    protected function createNamespaceBuilder($fqn) {
+        return new Namespace_($fqn);
+    }
+
+    public function testCreation() {
+        $stmt1 = new Stmt\Class_('SomeClass');
+        $stmt2 = new Stmt\Interface_('SomeInterface');
+        $stmt3 = new Stmt\Function_('someFunction');
+        $docComment = new Doc('/** Test */');
+        $expected = new Stmt\Namespace_(
+            new Node\Name('Name\Space'),
+            array($stmt1, $stmt2, $stmt3),
+            array('comments' => array($docComment))
+        );
+
+        $node = $this->createNamespaceBuilder('Name\Space')
+            ->addStmt($stmt1)
+            ->addStmts(array($stmt2, $stmt3))
+            ->setDocComment($docComment)
+            ->getNode()
+        ;
+        $this->assertEquals($expected, $node);
+
+        $node = $this->createNamespaceBuilder(new Node\Name(array('Name', 'Space')))
+            ->setDocComment($docComment)
+            ->addStmts(array($stmt1, $stmt2))
+            ->addStmt($stmt3)
+            ->getNode()
+        ;
+        $this->assertEquals($expected, $node);
+
+        $node = $this->createNamespaceBuilder(null)->getNode();
+        $this->assertNull($node->name);
+        $this->assertEmpty($node->stmts);
+    }
+}