Mercurial > hg > isophonics-drupal-site
comparison vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 5fb285c0d0e3 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace PhpParser\Builder; | |
4 | |
5 use PhpParser\Comment; | |
6 use PhpParser\Node\Expr; | |
7 use PhpParser\Node\Name; | |
8 use PhpParser\Node\Scalar; | |
9 use PhpParser\Node\Stmt; | |
10 | |
11 class PropertyTest extends \PHPUnit_Framework_TestCase | |
12 { | |
13 public function createPropertyBuilder($name) { | |
14 return new Property($name); | |
15 } | |
16 | |
17 public function testModifiers() { | |
18 $node = $this->createPropertyBuilder('test') | |
19 ->makePrivate() | |
20 ->makeStatic() | |
21 ->getNode() | |
22 ; | |
23 | |
24 $this->assertEquals( | |
25 new Stmt\Property( | |
26 Stmt\Class_::MODIFIER_PRIVATE | |
27 | Stmt\Class_::MODIFIER_STATIC, | |
28 array( | |
29 new Stmt\PropertyProperty('test') | |
30 ) | |
31 ), | |
32 $node | |
33 ); | |
34 | |
35 $node = $this->createPropertyBuilder('test') | |
36 ->makeProtected() | |
37 ->getNode() | |
38 ; | |
39 | |
40 $this->assertEquals( | |
41 new Stmt\Property( | |
42 Stmt\Class_::MODIFIER_PROTECTED, | |
43 array( | |
44 new Stmt\PropertyProperty('test') | |
45 ) | |
46 ), | |
47 $node | |
48 ); | |
49 | |
50 $node = $this->createPropertyBuilder('test') | |
51 ->makePublic() | |
52 ->getNode() | |
53 ; | |
54 | |
55 $this->assertEquals( | |
56 new Stmt\Property( | |
57 Stmt\Class_::MODIFIER_PUBLIC, | |
58 array( | |
59 new Stmt\PropertyProperty('test') | |
60 ) | |
61 ), | |
62 $node | |
63 ); | |
64 } | |
65 | |
66 public function testDocComment() { | |
67 $node = $this->createPropertyBuilder('test') | |
68 ->setDocComment('/** Test */') | |
69 ->getNode(); | |
70 | |
71 $this->assertEquals(new Stmt\Property( | |
72 Stmt\Class_::MODIFIER_PUBLIC, | |
73 array( | |
74 new Stmt\PropertyProperty('test') | |
75 ), | |
76 array( | |
77 'comments' => array(new Comment\Doc('/** Test */')) | |
78 ) | |
79 ), $node); | |
80 } | |
81 | |
82 /** | |
83 * @dataProvider provideTestDefaultValues | |
84 */ | |
85 public function testDefaultValues($value, $expectedValueNode) { | |
86 $node = $this->createPropertyBuilder('test') | |
87 ->setDefault($value) | |
88 ->getNode() | |
89 ; | |
90 | |
91 $this->assertEquals($expectedValueNode, $node->props[0]->default); | |
92 } | |
93 | |
94 public function provideTestDefaultValues() { | |
95 return array( | |
96 array( | |
97 null, | |
98 new Expr\ConstFetch(new Name('null')) | |
99 ), | |
100 array( | |
101 true, | |
102 new Expr\ConstFetch(new Name('true')) | |
103 ), | |
104 array( | |
105 false, | |
106 new Expr\ConstFetch(new Name('false')) | |
107 ), | |
108 array( | |
109 31415, | |
110 new Scalar\LNumber(31415) | |
111 ), | |
112 array( | |
113 3.1415, | |
114 new Scalar\DNumber(3.1415) | |
115 ), | |
116 array( | |
117 'Hallo World', | |
118 new Scalar\String_('Hallo World') | |
119 ), | |
120 array( | |
121 array(1, 2, 3), | |
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)), | |
126 )) | |
127 ), | |
128 array( | |
129 array('foo' => 'bar', 'bar' => 'foo'), | |
130 new Expr\Array_(array( | |
131 new Expr\ArrayItem( | |
132 new Scalar\String_('bar'), | |
133 new Scalar\String_('foo') | |
134 ), | |
135 new Expr\ArrayItem( | |
136 new Scalar\String_('foo'), | |
137 new Scalar\String_('bar') | |
138 ), | |
139 )) | |
140 ), | |
141 array( | |
142 new Scalar\MagicConst\Dir, | |
143 new Scalar\MagicConst\Dir | |
144 ) | |
145 ); | |
146 } | |
147 } |