Chris@17: createTraitUseBuilder('SomeTrait') Chris@17: ->and('AnotherTrait') Chris@17: ->getNode() Chris@17: ; Chris@17: Chris@17: $this->assertEquals( Chris@17: new Stmt\TraitUse([ Chris@17: new Name('SomeTrait'), Chris@17: new Name('AnotherTrait') Chris@17: ]), Chris@17: $node Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testWith() { Chris@17: $node = $this->createTraitUseBuilder('SomeTrait') Chris@17: ->with(new Stmt\TraitUseAdaptation\Alias(null, 'foo', null, 'bar')) Chris@17: ->with((new TraitUseAdaptation(null, 'test'))->as('baz')) Chris@17: ->getNode() Chris@17: ; Chris@17: Chris@17: $this->assertEquals( Chris@17: new Stmt\TraitUse([new Name('SomeTrait')], [ Chris@17: new Stmt\TraitUseAdaptation\Alias(null, 'foo', null, 'bar'), Chris@17: new Stmt\TraitUseAdaptation\Alias(null, 'test', null, 'baz') Chris@17: ]), Chris@17: $node Chris@17: ); Chris@17: } Chris@17: Chris@17: public function testInvalidAdaptationNode() { Chris@17: $this->expectException(\LogicException::class); Chris@17: $this->expectExceptionMessage('Adaptation must have type TraitUseAdaptation'); Chris@17: $this->createTraitUseBuilder('Test') Chris@17: ->with(new Stmt\Echo_([])) Chris@17: ; Chris@17: } Chris@17: }