|
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