/**
  * testGetItemVisiblePermission
  *
  * @return void
  */
 public function testGetItemVisiblePermission()
 {
     // MenuItem $item
     $sampleItem = $this->getSampleMenuItem();
     $permissionFactory = $this->permissionFactory;
     $permissionFactory->shouldReceive('findRegistered')->andReturn($permissionFactory);
     $permissionFactory->shouldReceive('pure')->andReturn(null);
     $permissionFactory->shouldReceive('offsetGet')->andReturn(['rating' => 'test rating', 'group' => 'test group', 'user' => 'test user', 'except' => 'test except']);
     $permissionHandler = new MenuPermissionHandler($permissionFactory, $this->groupRepoMock, $this->memberRepoMock);
     $visiblePermission = $permissionHandler->getItemVisiblePermission($sampleItem);
     $this->assertEquals('inherit', $visiblePermission['mode']);
     $this->assertEquals('test rating', $visiblePermission['rating']);
     $this->assertEquals('test group', $visiblePermission['group']);
     $this->assertEquals('test user', $visiblePermission['user']);
     $this->assertEquals('test except', $visiblePermission['except']);
 }
 /**
  * editItemPermission
  * 선택된 메뉴의 아이템을 permission 을 수정하는 페이지 구성
  *
  * @param MenuRetrieveHandler                $menuHandler       menu handler
  * @param MenuPermissionHandler              $permissionHandler menu permission handler
  * @param \Xpressengine\Module\ModuleHandler $moduleHandler     module handler
  * @param string                             $menuId            menu id
  * @param string                             $itemId            item id
  *
  * @return RendererInterface
  */
 public function editItemPermission(MenuRetrieveHandler $menuHandler, MenuPermissionHandler $permissionHandler, ModuleHandler $moduleHandler, $menuId, $itemId)
 {
     $menu = $menuHandler->getMenu($menuId);
     $item = $menu->getItem($itemId);
     try {
         $menuType = $moduleHandler->getModuleObject($item->type);
     } catch (NotFoundModuleException $e) {
         $menuType = null;
     }
     $accessPermission = $permissionHandler->getItemAccessPermission($item);
     $visiblePermission = $permissionHandler->getItemVisiblePermission($item);
     return Presenter::make('menu.itemPermission', ['menu' => $menu, 'item' => $item, 'menuType' => $menuType, 'access' => ['mode' => $accessPermission['mode'], 'grant' => $accessPermission, 'title' => 'access'], 'visible' => ['mode' => $visiblePermission['mode'], 'grant' => $visiblePermission, 'title' => 'visible']]);
 }