public function testOk() { $finder = new RepositoriesFinder(); $tmpDir = tempnam(sys_get_temp_dir(), 'gitlib_'); unlink($tmpDir); mkdir($tmpDir . '/folder/subfolder', 0777, true); Admin::init($tmpDir . '/folder/subfolder/A', false); Admin::init($tmpDir . '/folder/B', false); Admin::init($tmpDir . '/C', false); $repositories = $finder->getRepositories($tmpDir); $this->assertCount(3, $repositories); $this->assertInstanceOf('Gitonomy\\Git\\Repository', reset($repositories)); }
private function loadRepositories() { if (!isset($this['repositories'])) { throw new \RuntimeException(sprintf('You should declare some repositories in the config file: "%s"', $configFile)); } elseif (is_string($this['repositories'])) { $repoFinder = new RepositoriesFinder(); $this['repositories'] = $repoFinder->getRepositories($this['repositories']); } elseif ($this['repositories'] instanceof Repository) { $this['repositories'] = array($this['repositories']); } elseif (is_array($this['repositories'])) { foreach ($this['repositories'] as $key => $repository) { if (!$repository instanceof Repository) { throw new \RuntimeException(sprintf('Value (%s) in $gitonomy[\'repositories\'] is not an instance of Repository in: "%s"', $key, $configFile)); } if (is_string($key)) { $repository->setName($key); } } } else { throw new \RuntimeException(sprintf('"$gitonomy" should be a array of Repository or a string in "%s"', $configFile)); } $repositoryTmp = array(); foreach ($this['repositories'] as $repository) { $repositoryTmp[$repository->getName()] = $repository; } $this['repositories'] = $repositoryTmp; }