|
19 | 19 |
|
20 | 20 | class DeprecationTest extends TestCase
|
21 | 21 | {
|
22 |
| - public static function setUpBeforeClass(): void |
| 22 | + private static $vendorDir; |
| 23 | + |
| 24 | + private static function getVendorDir(): string |
23 | 25 | {
|
24 |
| - $vendorDir = self::getVendorDir(); |
| 26 | + if (null !== self::$vendorDir) { |
| 27 | + return self::$vendorDir; |
| 28 | + } |
| 29 | + |
| 30 | + foreach (get_declared_classes() as $class) { |
| 31 | + if ('C' === $class[0] && 0 === strpos($class, 'ComposerAutoloaderInit')) { |
| 32 | + $r = new \ReflectionClass($class); |
| 33 | + $vendorDir = \dirname(\dirname($r->getFileName())); |
| 34 | + if (file_exists($vendorDir.'/composer/installed.json') && @mkdir($vendorDir.'/myfakevendor/myfakepackage1', 0777, true)) { |
| 35 | + break; |
| 36 | + } |
| 37 | + } |
| 38 | + } |
25 | 39 |
|
26 |
| - mkdir($vendorDir.'/myfakevendor/myfakepackage1', 0777, true); |
| 40 | + self::$vendorDir = $vendorDir; |
27 | 41 | mkdir($vendorDir.'/myfakevendor/myfakepackage2');
|
28 | 42 | touch($vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile1.php');
|
29 | 43 | touch($vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile2.php');
|
30 | 44 | touch($vendorDir.'/myfakevendor/myfakepackage2/MyFakeFile.php');
|
31 |
| - } |
32 | 45 |
|
33 |
| - private static function getVendorDir(): string |
34 |
| - { |
35 |
| - $reflection = new \ReflectionClass(ClassLoader::class); |
36 | 46 |
|
37 |
| - return \dirname($reflection->getFileName(), 2); |
| 47 | + return self::$vendorDir; |
38 | 48 | }
|
39 | 49 |
|
40 | 50 | public function testItCanDetermineTheClassWhereTheDeprecationHappened()
|
@@ -184,7 +194,7 @@ public function testGetTypeDetectsSelf(string $expectedType, string $message, st
|
184 | 194 | ['class' => $traceClass, 'function' => 'myMethod'],
|
185 | 195 | ];
|
186 | 196 | $deprecation = new Deprecation($message, $trace, $file);
|
187 |
| - $this->assertEquals($expectedType, $deprecation->getType()); |
| 197 | + $this->assertSame($expectedType, $deprecation->getType()); |
188 | 198 | }
|
189 | 199 |
|
190 | 200 | public function providerGetTypeUsesRightTrace(): array
|
@@ -240,7 +250,7 @@ public function testGetTypeUsesRightTrace(string $expectedType, string $message,
|
240 | 250 | $trace,
|
241 | 251 | self::getVendorDir().'/myfakevendor/myfakepackage2/MyFakeFile.php'
|
242 | 252 | );
|
243 |
| - $this->assertEquals($expectedType, $deprecation->getType()); |
| 253 | + $this->assertSame($expectedType, $deprecation->getType()); |
244 | 254 | }
|
245 | 255 |
|
246 | 256 | /**
|
|
0 commit comments