예제 #1
0
 public function testOneBuildToBuildAddBuilds()
 {
     $build = new Xinc_Build(new Xinc_Engine_Sunrise(), new Xinc_Project());
     $buildIterator = new Xinc_Build_Iterator();
     $buildIterator->add($build);
     $queue = new Xinc_Build_Queue();
     $scheduler = new Xinc_Build_Scheduler_Default();
     $build->setScheduler($scheduler);
     $queue->addBuilds($buildIterator);
     $nextBuildTime = $queue->getNextBuildTime();
     $this->assertTrue($nextBuildTime != null, 'We should have a default builttime');
     $nextBuild = $queue->getNextBuild();
     $this->assertEquals($build, $nextBuild, 'The Builds should be equal');
 }
예제 #2
0
 protected function _generateChildren()
 {
     $builds = new Xinc_Build_Iterator();
     $handler = Xinc_Gui_Handler::getInstance();
     $statusDir = $handler->getStatusDir();
     $dir = opendir($statusDir);
     while ($file = readdir($dir)) {
         $fullfile = $statusDir . DIRECTORY_SEPARATOR . $file;
         if (!in_array($file, array('.', '..')) && is_dir($fullfile)) {
             $statusfile = $fullfile . DIRECTORY_SEPARATOR . 'build.ser';
             if (file_exists($statusfile)) {
                 $project = new Xinc_Project();
                 $project->setName($file);
                 try {
                     $object = Xinc_Build_Repository::getLastBuild($project);
                     $builds->add($object);
                 } catch (Exception $e) {
                 }
             }
         }
     }
     $projects = array();
     while ($builds->hasNext()) {
         $build = $builds->next();
         /**
          * Do we have children?
          */
         $children = array();
         foreach ($this->_subMenus as $subExtension) {
             $item = $subExtension->getItem($build->getProject());
             if (!$item instanceof Xinc_Plugin_Repos_Gui_Menu_Extension_Item) {
                 continue;
             }
             $children[] = $item->generate();
         }
         $item = new Xinc_Plugin_Repos_Gui_Menu_Extension_Item('project-' . $build->getProject()->getName() . '-' . $build->getBuildTime(), $build->getLabel() . ' - ' . $build->getProject()->getName(), './dashboard/detail?project=' . $build->getProject()->getName() . '&timestamp=' . $build->getBuildTime(), $build->getProject()->getName(), '', false, count($children) > 0 ? false : true, $children);
         $projects[] = $item->generate();
     }
     return implode(',', $projects);
 }
예제 #3
0
 /**
  * Adds a number of builds to the queue
  *
  * @param Xinc_Build_Iterator $builds
  */
 public function addBuilds(Xinc_Build_Iterator $builds)
 {
     while ($builds->hasNext()) {
         $this->builds->add($builds->next());
     }
 }