public function testGlobalScore() { $dispatcher = new EventDispatcher(); $testers = array('Activity', 'Composer', 'Followers', 'KnpBundles', 'Readme', 'Travis'); foreach ($testers as $testerClass) { $fqcn = sprintf('\\Knp\\Bundle\\KnpBundlesBundle\\EventListener\\Scoring\\%sListener', $testerClass); $tester = new $fqcn(); $dispatcher->addListener(BundleEvent::UPDATE_SCORE, array($tester, 'onScoreUpdate')); } $bundle = new Bundle(); // activity (+4) $bundle->setLastCommitAt(new \DateTime('-10days')); // composer (+5) $bundle->setComposerName('bundle-composer-name'); // followers (+10) $bundle->setNbFollowers(10); // recommendation (+5) $bundle->addRecommender(new Developer()); // readme (+5) $bundle->setReadme(str_repeat('-', 500)); // travis (+10) $bundle->setUsesTravisCi(true); $bundle->setTravisCiBuildStatus(true); $dispatcher->dispatch(BundleEvent::UPDATE_SCORE, new BundleEvent($bundle)); $bundle->recalculateScore(); $this->assertEquals(39, $bundle->getScore()); }
public function testUseTravisScoreDetail() { $bundle = new Bundle(); $tester = new TravisListener(); $bundle->setUsesTravisCi(false); $tester->updateScore($bundle); $bundle->recalculateScore(); $this->assertEquals(0, $bundle->getScore()); $bundle->setUsesTravisCi(true); $tester->updateScore($bundle); $bundle->recalculateScore(); $this->assertEquals(5, $bundle->getScore()); }
public function updateFiles(Bundle $bundle, array $onlyFiles = null) { $this->output->write(' files'); /** @var \Github\Api\Repository\Contents $api */ $api = $this->github->api('repo')->contents(); try { $files = $api->show($bundle->getOwnerName(), $bundle->getName()); } catch (RuntimeException $e) { return false; } foreach ($files as $data) { switch ($data['name']) { case 'LICENSE': if (null !== $onlyFiles && !in_array('license', $onlyFiles)) { continue; } try { $file = $api->show($bundle->getOwnerName(), $bundle->getName(), 'LICENSE'); $bundle->setLicense(base64_decode($file['content'])); } catch (RuntimeException $e) { } break; case '.travis.yml': if (null !== $onlyFiles && !in_array('travis', $onlyFiles)) { continue; } $bundle->setUsesTravisCi(true); break; case 'composer.json': if (null !== $onlyFiles && !in_array('composer', $onlyFiles)) { continue; } try { $file = $api->show($bundle->getOwnerName(), $bundle->getName(), 'composer.json'); $this->updateComposerFile(base64_decode($file['content']), $bundle); } catch (RuntimeException $e) { } break; } } if (null === $onlyFiles || in_array('readme', $onlyFiles)) { try { $readme = $api->readme($bundle->getOwnerName(), $bundle->getName()); if (!isset($readme['message']) && 'base64' == $readme['encoding']) { $bundle->setReadme(base64_decode($readme['content'])); } } catch (RuntimeException $e) { } } if (null === $bundle->getLicense() && (null === $onlyFiles || in_array('license', $onlyFiles))) { try { $file = $api->show($bundle->getOwnerName(), $bundle->getName(), 'Resources/meta/LICENSE'); $bundle->setLicense(base64_decode($file['content'])); } catch (RuntimeException $e) { } } if (null === $onlyFiles || in_array('configuration', $onlyFiles)) { try { $this->updateCanonicalConfigFile($bundle); } catch (RuntimeException $e) { } } try { $this->updateVersionsHistory($bundle); } catch (RuntimeException $e) { } return true; }