diff --git a/module/User/view/zfc-user/user/index.phtml b/module/User/view/zfc-user/user/index.phtml index 849ce04f..c6884eca 100644 --- a/module/User/view/zfc-user/user/index.phtml +++ b/module/User/view/zfc-user/user/index.phtml @@ -22,7 +22,7 @@
- +
No modules have been submitted yet
diff --git a/module/ZfModule/src/ZfModule/Service/Module.php b/module/ZfModule/src/ZfModule/Service/Module.php index b6644d0f..c802869e 100644 --- a/module/ZfModule/src/ZfModule/Service/Module.php +++ b/module/ZfModule/src/ZfModule/Service/Module.php @@ -112,7 +112,7 @@ public function allModules($limit = null) } /** - * @return Entity\Module[] + * @return stdClass[] */ public function currentUserModules() { @@ -122,25 +122,20 @@ public function currentUserModules() 'per_page' => 100, ]); - $modules = []; - - foreach ($repositoryCollection as $repository) { + return array_filter(iterator_to_array($repositoryCollection), function ($repository) { if (true === $repository->fork) { - continue; + return false; } if (false === $repository->permissions->push) { - continue; + return false; } - $module = $this->moduleMapper->findByName($repository->name); - if (!($module instanceof Entity\Module)) { - continue; + if (null === $this->moduleMapper->findByName($repository->name)) { + return false; } - array_push($modules, $module); - } - - return $modules; + return true; + }); } } diff --git a/module/ZfModule/src/ZfModule/View/Helper/ModuleView.php b/module/ZfModule/src/ZfModule/View/Helper/ModuleView.php index 0b5a3ce3..b4542a04 100644 --- a/module/ZfModule/src/ZfModule/View/Helper/ModuleView.php +++ b/module/ZfModule/src/ZfModule/View/Helper/ModuleView.php @@ -2,10 +2,8 @@ namespace ZfModule\View\Helper; -use InvalidArgumentException; use stdClass; use Zend\View\Helper\AbstractHelper; -use ZfModule\Entity; class ModuleView extends AbstractHelper { @@ -13,53 +11,20 @@ class ModuleView extends AbstractHelper const BUTTON_REMOVE = 'remove'; /** - * @param Entity\Module|stdClass $module + * @param stdClass $module * @param string $button * @return string */ public function __invoke($module, $button = 'submit') { - $values = $this->fetchValues($module); - - $values += [ + return $this->getView()->render('zf-module/helper/module-view.phtml', [ + 'owner' => $module->owner->login, + 'name' => $module->name, + 'createdAt' => $module->created_at, + 'url' => $module->html_url, + 'photoUrl' => $module->owner->avatar_url, + 'description' => $module->description, 'button' => $button, - ]; - - return $this->getView()->render('zf-module/helper/module-view.phtml', $values); - } - - /** - * @param stdClass|Entity\Module$module - * @return array - */ - private function fetchValues($module) - { - if ((!$module instanceof stdClass) && !($module instanceof Entity\Module)) { - throw new InvalidArgumentException(sprintf( - 'Parameter "%s" needs to be specified as %s', - '$module', - 'an instance of stdClass or ZfModule\Entity\Module' - )); - } - - if ($module instanceof stdClass) { - return [ - 'owner' => $module->owner->login, - 'name' => $module->name, - 'createdAt' => $module->created_at, - 'url' => $module->html_url, - 'photoUrl' => $module->owner->avatar_url, - 'description' => $module->description, - ]; - } - - return [ - 'owner' => $module->getOwner(), - 'name' => $module->getName(), - 'createdAt' => $module->getCreatedAt(), - 'url' => $module->getUrl(), - 'photoUrl' => $module->getPhotoUrl(), - 'description' => $module->getDescription(), - ]; + ]); } } diff --git a/module/ZfModule/test/ZfModuleTest/Service/ModuleTest.php b/module/ZfModule/test/ZfModuleTest/Service/ModuleTest.php index cc5420a5..bd45ea92 100644 --- a/module/ZfModule/test/ZfModuleTest/Service/ModuleTest.php +++ b/module/ZfModule/test/ZfModuleTest/Service/ModuleTest.php @@ -89,12 +89,12 @@ public function testListUserModulesListsCurrentUsersModulesFromApiFoundInDatabas $repository->permissions->push = true; $repository->name = $name; - $module = $this->getMockBuilder(Entity\Module::class)->getMock(); - - $modules = [ - $module, + $repositories = [ + $repository, ]; + $module = $this->getMockBuilder(Entity\Module::class)->getMock(); + $moduleMapper = $this->getMockBuilder(Mapper\Module::class)->getMock(); $moduleMapper @@ -130,7 +130,7 @@ public function testListUserModulesListsCurrentUsersModulesFromApiFoundInDatabas $githubClient ); - $this->assertSame($modules, $service->currentUserModules()); + $this->assertSame($repositories, $service->currentUserModules()); } public function testListUserModulesDoesNotLookupModulesFromApiWhereUserHasNoPushPrivilege() diff --git a/module/ZfModule/test/ZfModuleTest/View/Helper/ModuleViewTest.php b/module/ZfModule/test/ZfModuleTest/View/Helper/ModuleViewTest.php index e2ff2de9..a23b5f5f 100644 --- a/module/ZfModule/test/ZfModuleTest/View/Helper/ModuleViewTest.php +++ b/module/ZfModule/test/ZfModuleTest/View/Helper/ModuleViewTest.php @@ -5,7 +5,6 @@ use PHPUnit_Framework_TestCase; use stdClass; use Zend\View; -use ZfModule\Entity; use ZfModule\View\Helper; class ModuleViewTest extends PHPUnit_Framework_TestCase @@ -39,53 +38,9 @@ public function testInvokeHandlesRepository() $helper($repository); } - public function testInvokeHandlesModule() - { - $module = $this->module(); - - $view = $this->getMockForAbstractClass(View\Renderer\RendererInterface::class); - - $view - ->expects($this->once()) - ->method('render') - ->with( - $this->equalTo('zf-module/helper/module-view.phtml'), - $this->equalTo([ - 'owner' => $module->getOwner(), - 'name' => $module->getName(), - 'createdAt' => $module->getCreatedAt(), - 'url' => $module->getUrl(), - 'photoUrl' => $module->getPhotoUrl(), - 'description' => $module->getDescription(), - 'button' => 'submit', - ]) - ) - ; - - $helper = new Helper\ModuleView(); - $helper->setView($view); - - $helper($module); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testInvokeDoesNotHandleAnythingElse() - { - $module = 'foo'; - - $view = $this->getMockForAbstractClass(View\Renderer\RendererInterface::class); - - $helper = new Helper\ModuleView(); - $helper->setView($view); - - $helper($module); - } - public function testInvokeAllowsSpecifyingButtonType() { - $module = $this->module(); + $repository = $this->repository(); $button = 'baz'; $view = $this->getMockForAbstractClass(View\Renderer\RendererInterface::class); @@ -107,7 +62,7 @@ public function testInvokeAllowsSpecifyingButtonType() $helper = new Helper\ModuleView(); $helper->setView($view); - $helper($module, $button); + $helper($repository, $button); } /** @@ -128,21 +83,4 @@ private function repository() return $repository; } - - /** - * @return Entity\Module - */ - private function module() - { - $module = new Entity\Module(); - - $module->setName('foo'); - $module->setDescription('blah blah'); - $module->setCreatedAt('1970-01-01 00:00:00'); - $module->setUrl('http://www.example.org'); - $module->setOwner('suzie'); - $module->setPhotoUrl('http://www.example.org/img/suzie.gif'); - - return $module; - } }