@dataProvider getDifferentOrders
public function testClassReordering(array $classes) {
$expected = array(
'ClassesWithParents\\GInterface',
'ClassesWithParents\\CInterface',
'ClassesWithParents\\B',
'ClassesWithParents\\A',
);
$r = new \ReflectionClass('Symfony\\Component\\ClassLoader\\ClassCollectionLoader');
$m = $r
->getMethod('getOrderedClasses');
$m
->setAccessible(true);
$ordered = $m
->invoke('Symfony\\Component\\ClassLoader\\ClassCollectionLoader', $classes);
$this
->assertEquals($expected, array_map(function ($class) {
return $class
->getName();
}, $ordered));
}