Chris@13: createPropertyBuilder('test') Chris@0: ->makePrivate() Chris@0: ->makeStatic() Chris@0: ->getNode() Chris@0: ; Chris@0: Chris@0: $this->assertEquals( Chris@0: new Stmt\Property( Chris@0: Stmt\Class_::MODIFIER_PRIVATE Chris@0: | Stmt\Class_::MODIFIER_STATIC, Chris@13: [ Chris@0: new Stmt\PropertyProperty('test') Chris@13: ] Chris@0: ), Chris@0: $node Chris@0: ); Chris@0: Chris@0: $node = $this->createPropertyBuilder('test') Chris@0: ->makeProtected() Chris@0: ->getNode() Chris@0: ; Chris@0: Chris@0: $this->assertEquals( Chris@0: new Stmt\Property( Chris@0: Stmt\Class_::MODIFIER_PROTECTED, Chris@13: [ Chris@0: new Stmt\PropertyProperty('test') Chris@13: ] Chris@0: ), Chris@0: $node Chris@0: ); Chris@0: Chris@0: $node = $this->createPropertyBuilder('test') Chris@0: ->makePublic() Chris@0: ->getNode() Chris@0: ; Chris@0: Chris@0: $this->assertEquals( Chris@0: new Stmt\Property( Chris@0: Stmt\Class_::MODIFIER_PUBLIC, Chris@13: [ Chris@0: new Stmt\PropertyProperty('test') Chris@13: ] Chris@0: ), Chris@0: $node Chris@0: ); Chris@0: } Chris@0: Chris@0: public function testDocComment() { Chris@0: $node = $this->createPropertyBuilder('test') Chris@0: ->setDocComment('/** Test */') Chris@0: ->getNode(); Chris@0: Chris@0: $this->assertEquals(new Stmt\Property( Chris@0: Stmt\Class_::MODIFIER_PUBLIC, Chris@13: [ Chris@0: new Stmt\PropertyProperty('test') Chris@13: ], Chris@13: [ Chris@13: 'comments' => [new Comment\Doc('/** Test */')] Chris@13: ] Chris@0: ), $node); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @dataProvider provideTestDefaultValues Chris@0: */ Chris@0: public function testDefaultValues($value, $expectedValueNode) { Chris@0: $node = $this->createPropertyBuilder('test') Chris@0: ->setDefault($value) Chris@0: ->getNode() Chris@0: ; Chris@0: Chris@0: $this->assertEquals($expectedValueNode, $node->props[0]->default); Chris@0: } Chris@0: Chris@0: public function provideTestDefaultValues() { Chris@13: return [ Chris@13: [ Chris@0: null, Chris@0: new Expr\ConstFetch(new Name('null')) Chris@13: ], Chris@13: [ Chris@0: true, Chris@0: new Expr\ConstFetch(new Name('true')) Chris@13: ], Chris@13: [ Chris@0: false, Chris@0: new Expr\ConstFetch(new Name('false')) Chris@13: ], Chris@13: [ Chris@0: 31415, Chris@0: new Scalar\LNumber(31415) Chris@13: ], Chris@13: [ Chris@0: 3.1415, Chris@0: new Scalar\DNumber(3.1415) Chris@13: ], Chris@13: [ Chris@0: 'Hallo World', Chris@0: new Scalar\String_('Hallo World') Chris@13: ], Chris@13: [ Chris@13: [1, 2, 3], Chris@13: new Expr\Array_([ Chris@0: new Expr\ArrayItem(new Scalar\LNumber(1)), Chris@0: new Expr\ArrayItem(new Scalar\LNumber(2)), Chris@0: new Expr\ArrayItem(new Scalar\LNumber(3)), Chris@13: ]) Chris@13: ], Chris@13: [ Chris@13: ['foo' => 'bar', 'bar' => 'foo'], Chris@13: new Expr\Array_([ Chris@0: new Expr\ArrayItem( Chris@0: new Scalar\String_('bar'), Chris@0: new Scalar\String_('foo') Chris@0: ), Chris@0: new Expr\ArrayItem( Chris@0: new Scalar\String_('foo'), Chris@0: new Scalar\String_('bar') Chris@0: ), Chris@13: ]) Chris@13: ], Chris@13: [ Chris@0: new Scalar\MagicConst\Dir, Chris@0: new Scalar\MagicConst\Dir Chris@13: ] Chris@13: ]; Chris@0: } Chris@0: }