annotate vendor/nikic/php-parser/test/PhpParser/Builder/TraitUseTest.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@17 1 <?php declare(strict_types=1);
Chris@17 2
Chris@17 3 namespace PhpParser\Builder;
Chris@17 4
Chris@17 5 use PhpParser\Node\Name;
Chris@17 6 use PhpParser\Node\Stmt;
Chris@17 7
Chris@17 8 class TraitUseTest extends \PHPUnit\Framework\TestCase
Chris@17 9 {
Chris@17 10 protected function createTraitUseBuilder(...$traits) {
Chris@17 11 return new TraitUse(...$traits);
Chris@17 12 }
Chris@17 13
Chris@17 14 public function testAnd() {
Chris@17 15 $node = $this->createTraitUseBuilder('SomeTrait')
Chris@17 16 ->and('AnotherTrait')
Chris@17 17 ->getNode()
Chris@17 18 ;
Chris@17 19
Chris@17 20 $this->assertEquals(
Chris@17 21 new Stmt\TraitUse([
Chris@17 22 new Name('SomeTrait'),
Chris@17 23 new Name('AnotherTrait')
Chris@17 24 ]),
Chris@17 25 $node
Chris@17 26 );
Chris@17 27 }
Chris@17 28
Chris@17 29 public function testWith() {
Chris@17 30 $node = $this->createTraitUseBuilder('SomeTrait')
Chris@17 31 ->with(new Stmt\TraitUseAdaptation\Alias(null, 'foo', null, 'bar'))
Chris@17 32 ->with((new TraitUseAdaptation(null, 'test'))->as('baz'))
Chris@17 33 ->getNode()
Chris@17 34 ;
Chris@17 35
Chris@17 36 $this->assertEquals(
Chris@17 37 new Stmt\TraitUse([new Name('SomeTrait')], [
Chris@17 38 new Stmt\TraitUseAdaptation\Alias(null, 'foo', null, 'bar'),
Chris@17 39 new Stmt\TraitUseAdaptation\Alias(null, 'test', null, 'baz')
Chris@17 40 ]),
Chris@17 41 $node
Chris@17 42 );
Chris@17 43 }
Chris@17 44
Chris@17 45 public function testInvalidAdaptationNode() {
Chris@17 46 $this->expectException(\LogicException::class);
Chris@17 47 $this->expectExceptionMessage('Adaptation must have type TraitUseAdaptation');
Chris@17 48 $this->createTraitUseBuilder('Test')
Chris@17 49 ->with(new Stmt\Echo_([]))
Chris@17 50 ;
Chris@17 51 }
Chris@17 52 }