1313
1414use PHPUnit \Framework \TestCase ;
1515use Symfony \Component \Config \Resource \ReflectionClassResource ;
16+ use Symfony \Component \Config \Tests \Fixtures \FakeVendor \Base ;
1617use Symfony \Component \EventDispatcher \EventSubscriberInterface ;
1718use Symfony \Contracts \Service \ServiceSubscriberInterface ;
1819
@@ -71,7 +72,7 @@ public function testHashedSignature(bool $changeExpected, int $changedLine, ?str
7172
7273 $ code = <<<'EOPHP'
7374/* 0*/
74- /* 1*/ class %s extends ErrorException
75+ /* 1*/ class %s extends %s
7576/* 2*/ {
7677/* 3*/ const FOO = 123;
7778/* 4*/
@@ -91,22 +92,27 @@ public function testHashedSignature(bool $changeExpected, int $changedLine, ?str
9192/*18*/ }
9293EOPHP;
9394
94- static $ expectedSignature , $ generateSignature ;
95+ static $ expectedSignature , $ signatureGenerator ;
9596
9697 if (null === $ expectedSignature ) {
97- eval (\sprintf ($ code , $ class = 'Foo ' .(string ) $ resourceClassNameSuffix ));
98+ eval (\sprintf ($ code , $ class = 'Foo ' .(string ) $ resourceClassNameSuffix , Base::class));
99+
98100 $ r = new \ReflectionClass (ReflectionClassResource::class);
99101 $ generateSignature = $ r ->getMethod ('generateSignature ' );
100- $ generateSignature = $ generateSignature ->getClosure ($ r ->newInstanceWithoutConstructor ());
101- $ expectedSignature = implode ("\n" , iterator_to_array ($ generateSignature (new \ReflectionClass ($ class ))));
102+
103+ $ res = new ReflectionClassResource (new \ReflectionClass ($ class ), [\dirname (__DIR__ ).'/Fixtures/FakeVendor ' ]);
104+ $ signatureGenerator = $ generateSignature ->getClosure ($ res );
105+ $ expectedSignature = implode ("\n" , iterator_to_array ($ signatureGenerator (new \ReflectionClass ($ class ))));
106+
107+ $ signatureGenerator = $ generateSignature ->getClosure (unserialize (serialize ($ res )));
102108 }
103109
104110 $ code = explode ("\n" , $ code );
105111 if (null !== $ changedCode ) {
106112 $ code [$ changedLine ] = $ changedCode ;
107113 }
108- eval (\sprintf (implode ("\n" , $ code ), $ class = 'Bar ' .(string ) $ resourceClassNameSuffix ));
109- $ signature = implode ("\n" , iterator_to_array ($ generateSignature (new \ReflectionClass ($ class ))));
114+ eval (\sprintf (implode ("\n" , $ code ), $ class = 'Bar ' .(string ) $ resourceClassNameSuffix, Base::class ));
115+ $ signature = implode ("\n" , iterator_to_array ($ signatureGenerator (new \ReflectionClass ($ class ))));
110116
111117 if ($ changeExpected ) {
112118 $ this ->assertNotSame ($ expectedSignature , $ signature );
0 commit comments