annotate vendor/nikic/php-parser/test/PhpParser/Builder/TraitTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
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;
Chris@0 6 use PhpParser\Node\Name;
Chris@0 7 use PhpParser\Node\Stmt;
Chris@0 8
Chris@17 9 class TraitTest extends \PHPUnit\Framework\TestCase
Chris@0 10 {
Chris@0 11 protected function createTraitBuilder($class) {
Chris@0 12 return new Trait_($class);
Chris@0 13 }
Chris@0 14
Chris@0 15 public function testStmtAddition() {
Chris@0 16 $method1 = new Stmt\ClassMethod('test1');
Chris@0 17 $method2 = new Stmt\ClassMethod('test2');
Chris@0 18 $method3 = new Stmt\ClassMethod('test3');
Chris@13 19 $prop = new Stmt\Property(Stmt\Class_::MODIFIER_PUBLIC, [
Chris@0 20 new Stmt\PropertyProperty('test')
Chris@13 21 ]);
Chris@0 22 $use = new Stmt\TraitUse([new Name('OtherTrait')]);
Chris@0 23 $trait = $this->createTraitBuilder('TestTrait')
Chris@0 24 ->setDocComment('/** Nice trait */')
Chris@0 25 ->addStmt($method1)
Chris@0 26 ->addStmts([$method2, $method3])
Chris@0 27 ->addStmt($prop)
Chris@0 28 ->addStmt($use)
Chris@0 29 ->getNode();
Chris@0 30 $this->assertEquals(new Stmt\Trait_('TestTrait', [
Chris@0 31 'stmts' => [$use, $prop, $method1, $method2, $method3]
Chris@0 32 ], [
Chris@0 33 'comments' => [
Chris@0 34 new Comment\Doc('/** Nice trait */')
Chris@0 35 ]
Chris@0 36 ]), $trait);
Chris@0 37 }
Chris@0 38
Chris@0 39 public function testInvalidStmtError() {
Chris@17 40 $this->expectException(\LogicException::class);
Chris@17 41 $this->expectExceptionMessage('Unexpected node of type "Stmt_Echo"');
Chris@0 42 $this->createTraitBuilder('Test')
Chris@13 43 ->addStmt(new Stmt\Echo_([]))
Chris@0 44 ;
Chris@0 45 }
Chris@0 46 }