/** * Build circular dependencies data by dependencies data * * @param array $modulesData * @return array */ protected function buildCircularDependencies($modulesData) { $dependencies = array(); foreach ($modulesData as $moduleData) { foreach ($moduleData['dependencies'] as $dependencyData) { $dependencies[$moduleData['name']][] = $dependencyData['module']; } } return $this->circularBuilder->buildCircularDependencies($dependencies); }
public function testBuildCircularDependencies() { $dependencies = array(1 => array(2), 2 => array(3, 5), 3 => array(1), 5 => array(2)); $expectedCircularDependencies = array(1 => array(array(1, 2, 3, 1)), 2 => array(array(2, 3, 1, 2), array(2, 5, 2)), 3 => array(array(3, 1, 2, 3)), 5 => array(array(5, 2, 5))); $this->assertEquals($expectedCircularDependencies, $this->circular->buildCircularDependencies($dependencies)); }
public function testBuildCircularDependencies() { $dependencies = [1 => [2], 2 => [3, 5], 3 => [1], 5 => [2]]; $expectedCircularDependencies = [1 => [[1, 2, 3, 1]], 2 => [[2, 3, 1, 2], [2, 5, 2]], 3 => [[3, 1, 2, 3]], 5 => [[5, 2, 5]]]; $this->assertEquals($expectedCircularDependencies, $this->circular->buildCircularDependencies($dependencies)); }