@@ -38,8 +38,7 @@ public function testParseClass(): void
3838 $ this ->assertInstanceOf (ParseResult::class, $ result );
3939 $ functions = $ result ->functions ;
4040 $ this ->assertCount (1 , $ functions );
41- // $this->assertEquals('Clazz::bigFunction', $functions[0]->name);
42- $ this ->assertEquals ('bigFunction ' , $ functions [0 ]->name );
41+ $ this ->assertEquals ('Clazz::bigFunction ' , $ functions [0 ]->name );
4342 $ this ->assertCount (4 , $ functions [0 ]->getVariables ());
4443
4544 $ vars = $ functions [0 ]->getVariables ();
@@ -52,4 +51,27 @@ public function testParseClass(): void
5251 $ this ->assertSame ('num ' , $ vars [3 ]->name );
5352 $ this ->assertSame (15 , $ vars [3 ]->lineNumber , 'second $num (15) ' );
5453 }
54+
55+ public function testParseAnonymousFunction (): void
56+ {
57+ $ parser = new VariableParser ();
58+ $ content = file_get_contents ($ this ->fixtureDir . '/AnonymousFunction.php ' );
59+ $ result = $ parser ->parse ($ content );
60+
61+ $ this ->assertInstanceOf (ParseResult::class, $ result );
62+ $ functions = $ result ->functions ;
63+ $ this ->assertCount (1 , $ functions );
64+ $ this ->assertEquals ('Expr_Closure@4 ' , $ functions [0 ]->name );
65+ $ this ->assertCount (4 , $ functions [0 ]->getVariables ());
66+
67+ $ vars = $ functions [0 ]->getVariables ();
68+ $ this ->assertSame ('a ' , $ vars [0 ]->name );
69+ $ this ->assertSame (4 , $ vars [0 ]->lineNumber , 'first $a (4) ' );
70+ $ this ->assertSame ('b ' , $ vars [1 ]->name );
71+ $ this ->assertSame (4 , $ vars [1 ]->lineNumber , 'second $b (4) ' );
72+ $ this ->assertSame ('a ' , $ vars [2 ]->name );
73+ $ this ->assertSame (5 , $ vars [2 ]->lineNumber , 'second $a (5) ' );
74+ $ this ->assertSame ('b ' , $ vars [3 ]->name );
75+ $ this ->assertSame (5 , $ vars [3 ]->lineNumber , 'second $b (5) ' );
76+ }
5577}
0 commit comments