예제 #1
0
 /**
  * destroy
  *
  * @param MenuRetrieveHandler   $menuHandler       menu handler
  * @param MenuAlterHandler      $menuChanger       menu alter handler
  * @param MenuConfigHandler     $configHandler     menu config handler
  * @param MenuPermissionHandler $permissionHandler menu permission handler
  * @param string                $menuId            to delete menu entity object id
  *
  * @return RedirectResponse
  */
 public function destroy(MenuRetrieveHandler $menuHandler, MenuAlterHandler $menuChanger, MenuConfigHandler $configHandler, MenuPermissionHandler $permissionHandler, $menuId)
 {
     XeDB::beginTransaction();
     try {
         $menu = $menuHandler->getMenu($menuId);
         $menuChanger->removeMenu($menu);
         $configHandler->deleteMenuTheme($menu);
         $permissionHandler->deleteMenuPermission($menu);
     } catch (Exception $e) {
         XeDB::rollback();
         return Redirect::back()->with('alert', ['type' => 'danger', 'message' => $e->getMessage()]);
     }
     XeDB::commit();
     return Redirect::route('settings.menu.index')->with('alert', ['type' => 'success', 'message' => 'Menu deleted']);
 }
 /**
  * testRemoveMenuFail
  *
  * @return void
  * @throws \Exception
  */
 public function testRemoveMenuFail()
 {
     $this->setExpectedException('\\Exception');
     $menuRepo = $this->menuRepository;
     $typeHandler = $this->typeHandler;
     $routeHandler = $this->routeHandler;
     $cacheHandler = $this->cacheHandler;
     $menuHandler = new MenuAlterHandler($menuRepo, $typeHandler, $routeHandler, $cacheHandler);
     $menu = new MenuEntity(['id' => 'testMenu', 'title' => 'testTitle', 'description' => 'testDescription'], new TreeCollection([new MenuItem(['id' => 'testMenu'])]));
     $menuItem = new MenuItem(['id' => 'qna', 'parentId' => 'main', 'ordering' => 1, 'activated' => 1, 'type' => 'pluginA@board', 'title' => 'Q & A', 'description' => '질답 게시판입니다.', 'url' => 'qna']);
     $menu->addItem($menuItem);
     $menuRepo->shouldReceive('findMenu')->with('basic')->andReturn($menu);
     $menuRepo->shouldReceive('deleteMenu')->andReturn();
     $menuHandler->removeMenu($menu);
 }