/** * 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); }