3 namespace PhpParser\Builder;
6 use PhpParser\Node\Expr;
7 use PhpParser\Node\Name;
8 use PhpParser\Node\Scalar;
9 use PhpParser\Node\Stmt;
11 class PropertyTest extends \PHPUnit_Framework_TestCase
13 public function createPropertyBuilder($name) {
14 return new Property($name);
17 public function testModifiers() {
18 $node = $this->createPropertyBuilder('test')
26 Stmt\Class_::MODIFIER_PRIVATE
27 | Stmt\Class_::MODIFIER_STATIC,
29 new Stmt\PropertyProperty('test')
35 $node = $this->createPropertyBuilder('test')
42 Stmt\Class_::MODIFIER_PROTECTED,
44 new Stmt\PropertyProperty('test')
50 $node = $this->createPropertyBuilder('test')
57 Stmt\Class_::MODIFIER_PUBLIC,
59 new Stmt\PropertyProperty('test')
66 public function testDocComment() {
67 $node = $this->createPropertyBuilder('test')
68 ->setDocComment('/** Test */')
71 $this->assertEquals(new Stmt\Property(
72 Stmt\Class_::MODIFIER_PUBLIC,
74 new Stmt\PropertyProperty('test')
77 'comments' => array(new Comment\Doc('/** Test */'))
83 * @dataProvider provideTestDefaultValues
85 public function testDefaultValues($value, $expectedValueNode) {
86 $node = $this->createPropertyBuilder('test')
91 $this->assertEquals($expectedValueNode, $node->props[0]->default);
94 public function provideTestDefaultValues() {
98 new Expr\ConstFetch(new Name('null'))
102 new Expr\ConstFetch(new Name('true'))
106 new Expr\ConstFetch(new Name('false'))
110 new Scalar\LNumber(31415)
114 new Scalar\DNumber(3.1415)
118 new Scalar\String_('Hallo World')
122 new Expr\Array_(array(
123 new Expr\ArrayItem(new Scalar\LNumber(1)),
124 new Expr\ArrayItem(new Scalar\LNumber(2)),
125 new Expr\ArrayItem(new Scalar\LNumber(3)),
129 array('foo' => 'bar', 'bar' => 'foo'),
130 new Expr\Array_(array(
132 new Scalar\String_('bar'),
133 new Scalar\String_('foo')
136 new Scalar\String_('foo'),
137 new Scalar\String_('bar')
142 new Scalar\MagicConst\Dir,
143 new Scalar\MagicConst\Dir