Exemple #1
0
 public function testRun()
 {
     $cerbere = new \Cerbere\Cerbere();
     $cerbere->addParser(new Make());
     $cerbere->addParser(new Info());
     $cache = new FilesystemCache(sys_get_temp_dir() . '/cerbere');
     $action = new Update();
     $action->setCache($cache);
     $versioning = new Git();
     $versioning->setWrapper(new \GitWrapper\GitWrapper());
     $options = array('arguments' => array('q', 'branch' => 'master', 'depth' => 1));
     $job = new Job();
     $job->setVersioning($versioning);
     $job->setAction($action);
     $job->setSource('https://github.com/smalot/drush-cerbere.git', $options);
     $job->setPatterns(array('*.info'));
     $report = $cerbere->run($job);
     $expected = array('cerbere' => array('project' => 'cerbere', 'type' => Project::TYPE_UNKNOWN, 'version' => '', 'version_date' => null, 'recommended' => null, 'dev' => null, 'also_available' => array(), 'status' => -2, 'status_label' => 'Unknown', 'reason' => 'No available releases found'));
     // Todo: review this point.
     $this->array($report)->hasSize(0);
     //->isEqualTo($expected);
     $options = array('arguments' => array('q', 'branch' => 'master', 'depth' => 1));
     $job = new Job();
     $job->setVersioning($versioning);
     $job->setAction($action);
     $job->setSource('https://github.com/smalot/drush-cerbere-XXXXXX.git', $options);
     $job->setPatterns(array('*.info'));
     $this->exception(function () use($cerbere, $job) {
         $cerbere->run($job);
     })->message->contains('XXXXXX');
 }
Exemple #2
0
 /**
  * @param Job $job
  * @param array $options
  *
  * @return array
  */
 public function run(Job $job, $options = array())
 {
     // Download remote project if remote.
     $dir = $job->checkoutRepository();
     // Move to project folder.
     $currentDirectory = getcwd();
     chdir($dir);
     // Load projects from repository.
     $projects = $this->getProjectsFromPatterns($job->getPatterns(), $job->isPatternNested());
     $projects = $this->dedupeProjectList($projects);
     $event = new CerberePreActionEvent($this, $job, $job->getAction(), $projects);
     $this->getDispatcher()->dispatch(CerbereEvents::CERBERE_PRE_ACTION, $event);
     // Do cerbere action.
     $job->getAction()->prepare();
     $report = $job->getAction()->process($projects, $options);
     $event = new CerberePostActionEvent($this, $job, $job->getAction(), $projects);
     $this->getDispatcher()->dispatch(CerbereEvents::CERBERE_POST_ACTION, $event);
     // Restore initial directory.
     chdir($currentDirectory);
     return $report;
 }