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 }