public function testTraitDependencies() {
if (version_compare(phpversion(), '5.4', '<')) {
$this
->markTestSkipped('Requires PHP > 5.4');
return;
}
require_once __DIR__ . '/Fixtures/deps/traits.php';
$r = new \ReflectionClass('Symfony\\Component\\ClassLoader\\ClassCollectionLoader');
$m = $r
->getMethod('getOrderedClasses');
$m
->setAccessible(true);
$ordered = $m
->invoke('Symfony\\Component\\ClassLoader\\ClassCollectionLoader', array(
'CTFoo',
));
$this
->assertEquals(array(
'TD',
'TC',
'TB',
'TA',
'TZ',
'CTFoo',
), array_map(function ($class) {
return $class
->getName();
}, $ordered));
$ordered = $m
->invoke('Symfony\\Component\\ClassLoader\\ClassCollectionLoader', array(
'CTBar',
));
$this
->assertEquals(array(
'TD',
'TZ',
'TC',
'TB',
'TA',
'CTBar',
), array_map(function ($class) {
return $class
->getName();
}, $ordered));
}