33
44namespace Lookyman \PHPStan \Symfony ;
55
6- use PHPUnit \Framework \TestCase ;
6+ use Lookyman \PHPStan \Symfony \Rules \data \ExampleController ;
7+ use PHPStan \Analyser \Scope ;
8+ use PHPStan \Analyser \TypeSpecifier ;
9+ use PHPStan \Testing \TestCase ;
10+ use PhpParser \Node \Expr \BinaryOp \Concat ;
711use PhpParser \Node \Expr \ClassConstFetch ;
812use PhpParser \Node \Name ;
913use PhpParser \Node \Scalar \String_ ;
14+ use PhpParser \PrettyPrinter \Standard ;
1015
1116/**
1217 * @covers \Lookyman\PHPStan\Symfony\ServiceMap
@@ -19,8 +24,13 @@ final class ServiceMapTest extends TestCase
1924 */
2025 public function testGetServiceFromNode (array $ service ): void
2126 {
27+ $ printer = new Standard ();
28+
2229 $ serviceMap = new ServiceMap (__DIR__ . '/container.xml ' );
23- self ::assertEquals ($ service , $ serviceMap ->getServiceFromNode (new String_ ($ service ['id ' ])));
30+ self ::assertSame ($ service , $ serviceMap ->getServiceFromNode (
31+ new String_ ($ service ['id ' ]),
32+ new Scope ($ this ->createBroker (), $ printer , new TypeSpecifier ($ printer ), '' )
33+ ));
2434 }
2535
2636 /**
@@ -46,8 +56,16 @@ public function getServiceFromNodeProvider(): array
4656
4757 public function testGetServiceIdFromNode (): void
4858 {
49- self ::assertEquals ('foo ' , ServiceMap::getServiceIdFromNode (new String_ ('foo ' )));
50- self ::assertEquals ('bar ' , ServiceMap::getServiceIdFromNode (new ClassConstFetch (new Name ('bar ' ), '' )));
59+ $ broker = $ this ->createBroker ();
60+ $ printer = new Standard ();
61+ $ scope = new Scope ($ broker , $ printer , new TypeSpecifier ($ printer ), '' );
62+
63+ self ::assertSame ('foo ' , ServiceMap::getServiceIdFromNode (new String_ ('foo ' ), $ scope ));
64+ self ::assertSame ('bar ' , ServiceMap::getServiceIdFromNode (new ClassConstFetch (new Name ('bar ' ), '' ), $ scope ));
65+ self ::assertSame ('foobar ' , ServiceMap::getServiceIdFromNode (new Concat (new String_ ('foo ' ), new ClassConstFetch (new Name ('bar ' ), '' )), $ scope ));
66+
67+ $ scope = $ scope ->enterClass ($ broker ->getClass (ExampleController::class));
68+ self ::assertEquals (ExampleController::class, ServiceMap::getServiceIdFromNode (new ClassConstFetch (new Name ('static ' ), ExampleController::class), $ scope ));
5169 }
5270
5371}
0 commit comments