Mercurial > hg > isophonics-drupal-site
annotate vendor/nikic/php-parser/test/PhpParser/Builder/TraitUseTest.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | |
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 } |