Skip to content

Commit

Permalink
[PhpUnitBridge] fix getting the vendor/ dir for tests
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolas-grekas committed Feb 5, 2020
1 parent b6acfae commit 341dd5d
Showing 1 changed file with 20 additions and 10 deletions.
Expand Up @@ -19,22 +19,32 @@

class DeprecationTest extends TestCase
{
public static function setUpBeforeClass(): void
private static $vendorDir;

private static function getVendorDir(): string
{
$vendorDir = self::getVendorDir();
if (null !== self::$vendorDir) {
return self::$vendorDir;
}

foreach (get_declared_classes() as $class) {
if ('C' === $class[0] && 0 === strpos($class, 'ComposerAutoloaderInit')) {
$r = new \ReflectionClass($class);
$vendorDir = \dirname(\dirname($r->getFileName()));
if (file_exists($vendorDir.'/composer/installed.json') && @mkdir($vendorDir.'/myfakevendor/myfakepackage1', 0777, true)) {
break;
}
}
}

mkdir($vendorDir.'/myfakevendor/myfakepackage1', 0777, true);
self::$vendorDir = $vendorDir;
mkdir($vendorDir.'/myfakevendor/myfakepackage2');
touch($vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile1.php');
touch($vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile2.php');
touch($vendorDir.'/myfakevendor/myfakepackage2/MyFakeFile.php');
}

private static function getVendorDir(): string
{
$reflection = new \ReflectionClass(ClassLoader::class);

return \dirname($reflection->getFileName(), 2);
return self::$vendorDir;
}

public function testItCanDetermineTheClassWhereTheDeprecationHappened()
Expand Down Expand Up @@ -184,7 +194,7 @@ public function testGetTypeDetectsSelf(string $expectedType, string $message, st
['class' => $traceClass, 'function' => 'myMethod'],
];
$deprecation = new Deprecation($message, $trace, $file);
$this->assertEquals($expectedType, $deprecation->getType());
$this->assertSame($expectedType, $deprecation->getType());
}

public function providerGetTypeUsesRightTrace(): array
Expand Down Expand Up @@ -240,7 +250,7 @@ public function testGetTypeUsesRightTrace(string $expectedType, string $message,
$trace,
self::getVendorDir().'/myfakevendor/myfakepackage2/MyFakeFile.php'
);
$this->assertEquals($expectedType, $deprecation->getType());
$this->assertSame($expectedType, $deprecation->getType());
}

/**
Expand Down

0 comments on commit 341dd5d

Please sign in to comment.