Example #1
0
 /**
  * searches for projects.
  *
  * @param string   $name
  * @param \Closure $finder
  * @param string   $nameKey
  *
  * @return Project[]
  */
 protected function requestProjects($name, \Closure $finder, $nameKey)
 {
     $projects = [];
     if ($this->repoParser->isConcrete($name)) {
         $project = $this->getProject($name);
         $projects[$project->getName()] = $project;
     } else {
         $repos = $finder($name);
         if (true === $this->repoParser->isWildcard($name)) {
             foreach ((array) $repos as $repo) {
                 $project = $this->getProject($repo[$nameKey]);
                 $projects[$project->getName()] = $project;
             }
         } else {
             foreach ((array) $repos as $repo) {
                 if (false === $this->repoParser->matchesRegex($name, $repo[$nameKey])) {
                     continue;
                 }
                 $project = $this->getProject($repo[$nameKey]);
                 $projects[$project->getName()] = $project;
             }
         }
     }
     return $projects;
 }
Example #2
0
 public function it_throws_an_exception_for_invalid_project_names(RepositoryParser $repositoryParser)
 {
     $repositoryParser->isConcrete('foo')->shouldBeCalled()->willReturn(false);
     $this->setRepositoryParser($repositoryParser);
     $this->shouldThrow('\\InvalidArgumentException')->during('getProject', ['foo']);
 }