/**
  * destroyItem
  * 메뉴 아이템 삭제 처리 메소드
  *
  * @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            menu id
  * @param string                $itemId            item id
  *
  * @return RedirectResponse
  * @throws Exception
  */
 public function destroyItem(MenuRetrieveHandler $menuHandler, MenuAlterHandler $menuChanger, MenuConfigHandler $configHandler, MenuPermissionHandler $permissionHandler, $menuId, $itemId)
 {
     XeDB::beginTransaction();
     try {
         $menu = $menuHandler->getMenu($menuId);
         $item = $menu->getItem($itemId);
         $menuChanger->removeItem($item);
         $configHandler->deleteMenuItemTheme($item);
         $permissionHandler->deleteItemPermission($item);
     } 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' => 'MenuItem deleted']);
 }
 /**
  * testDeleteMenuItemTheme
  *
  * @return void
  */
 public function testDeleteMenuItemTheme()
 {
     // MenuItem $item
     $configManager = $this->configManager;
     $themeHandler = $this->themeHandler;
     $configManager->shouldReceive('removeByName')->andReturn();
     $dummyItem = new MenuItem(['id' => 'testMenu']);
     $dummyItem->setBreadCrumbs(['basic', 'notice']);
     $menuConfigHandler = new MenuConfigHandler($configManager, $themeHandler);
     $menuConfigHandler->deleteMenuItemTheme($dummyItem);
 }