@@ -97,4 +97,60 @@ public function testParseNamespace(): void
9797 $ this ->assertCount (0 , $ functions [1 ]->getVariables ());
9898 }
9999
100+ public function testParseAssignOperator (): void
101+ {
102+ $ parser = new VariableParser ();
103+ $ content = file_get_contents ($ this ->fixtureDir . '/assign_operator.php ' );
104+ $ result = $ parser ->parse ($ content );
105+
106+ $ this ->assertInstanceOf (ParseResult::class, $ result );
107+ $ functions = $ result ->functions ;
108+ $ this ->assertCount (1 , $ functions );
109+ $ this ->assertSame ('assignFunction ' , $ functions [0 ]->name );
110+ $ this ->assertCount (14 , $ functions [0 ]->getVariables ());
111+
112+ $ vars = $ functions [0 ]->getVariables ();
113+ $ this ->assertSame ('num ' , $ vars [0 ]->name );
114+ $ this ->assertSame (5 , $ vars [0 ]->lineNumber );
115+ $ this ->assertSame (true , $ vars [0 ]->assigned , '$num = 1; ' );
116+ $ this ->assertSame ('num ' , $ vars [1 ]->name );
117+ $ this ->assertSame (6 , $ vars [1 ]->lineNumber );
118+ $ this ->assertSame (true , $ vars [1 ]->assigned , '$num += 1; ' );
119+ $ this ->assertSame ('num ' , $ vars [2 ]->name );
120+ $ this ->assertSame (7 , $ vars [2 ]->lineNumber );
121+ $ this ->assertSame (true , $ vars [2 ]->assigned , '$num -= 1; ' );
122+ $ this ->assertSame ('num ' , $ vars [3 ]->name );
123+ $ this ->assertSame (8 , $ vars [3 ]->lineNumber );
124+ $ this ->assertSame (true , $ vars [3 ]->assigned , '$num *= 1; ' );
125+ $ this ->assertSame ('num ' , $ vars [4 ]->name );
126+ $ this ->assertSame (9 , $ vars [4 ]->lineNumber );
127+ $ this ->assertSame (true , $ vars [4 ]->assigned );
128+ $ this ->assertSame ('num ' , $ vars [5 ]->name );
129+ $ this ->assertSame (10 , $ vars [5 ]->lineNumber );
130+ $ this ->assertSame (true , $ vars [5 ]->assigned );
131+ $ this ->assertSame ('num ' , $ vars [6 ]->name );
132+ $ this ->assertSame (11 , $ vars [6 ]->lineNumber );
133+ $ this ->assertSame (true , $ vars [6 ]->assigned );
134+ $ this ->assertSame ('num ' , $ vars [7 ]->name );
135+ $ this ->assertSame (12 , $ vars [7 ]->lineNumber );
136+ $ this ->assertSame (true , $ vars [7 ]->assigned );
137+ $ this ->assertSame ('num ' , $ vars [8 ]->name );
138+ $ this ->assertSame (13 , $ vars [8 ]->lineNumber );
139+ $ this ->assertSame (true , $ vars [8 ]->assigned );
140+ $ this ->assertSame ('num ' , $ vars [9 ]->name );
141+ $ this ->assertSame (14 , $ vars [9 ]->lineNumber );
142+ $ this ->assertSame (true , $ vars [9 ]->assigned );
143+ $ this ->assertSame ('num ' , $ vars [10 ]->name );
144+ $ this ->assertSame (15 , $ vars [10 ]->lineNumber );
145+ $ this ->assertSame (true , $ vars [10 ]->assigned );
146+ $ this ->assertSame ('num ' , $ vars [11 ]->name );
147+ $ this ->assertSame (16 , $ vars [11 ]->lineNumber );
148+ $ this ->assertSame (true , $ vars [11 ]->assigned );
149+ $ this ->assertSame ('num ' , $ vars [12 ]->name );
150+ $ this ->assertSame (17 , $ vars [12 ]->lineNumber );
151+ $ this ->assertSame (true , $ vars [12 ]->assigned );
152+ $ this ->assertSame ('num ' , $ vars [13 ]->name );
153+ $ this ->assertSame (18 , $ vars [13 ]->lineNumber );
154+ $ this ->assertSame (true , $ vars [13 ]->assigned );
155+ }
100156}
0 commit comments