/**
  * updateItem
  * 메뉴 아이템 수정 처리 메소드
  *
  * @param MenuRetrieveHandler $menuHandler   menu handler
  * @param MenuAlterHandler    $menuChanger   menu change handler
  * @param MenuConfigHandler   $configHandler menu config handler
  * @param string              $menuId        menu id
  * @param string              $itemId        item id
  *
  * @return RedirectResponse
  * @throws Exception
  */
 public function updateItem(MenuRetrieveHandler $menuHandler, MenuAlterHandler $menuChanger, MenuConfigHandler $configHandler, $menuId, $itemId)
 {
     XeDB::beginTransaction();
     try {
         $inputs = Request::except(['_token', 'theme_desktop', 'theme_mobile']);
         $menu = $menuHandler->getMenu($menuId);
         $item = $menu->getItem($itemId);
         $parentThemeMode = Request::get('parentTheme', false);
         if ($parentThemeMode === false) {
             $desktopTheme = Request::get('theme_desktop');
             $mobileTheme = Request::get('theme_mobile');
         } else {
             $desktopTheme = null;
             $mobileTheme = null;
         }
         $menuChanger->putItem($item, $inputs);
         $configHandler->updateMenuItemTheme($item, $desktopTheme, $mobileTheme);
     } catch (Exception $e) {
         XeDB::rollback();
         Request::flash();
         return Redirect::back()->with('alert', ['type' => 'danger', 'message' => $e->getMessage()]);
     }
     XeDB::commit();
     return Redirect::route('settings.menu.index');
 }
 /**
  * testUpdateMenuItemThemeWithEmpty
  *
  * @return void
  */
 public function testUpdateMenuItemThemeWithEmpty()
 {
     $configManager = $this->configManager;
     $themeHandler = $this->themeHandler;
     $dummyConfigEntity = m::mock('Xpressengine\\Config\\ConfigEntity');
     $dummyConfigEntity->shouldReceive('set')->andReturn();
     $configManager->shouldReceive('get')->andReturn($dummyConfigEntity);
     $configManager->shouldReceive('modify')->andReturn();
     $dummyItem = new MenuItem(['id' => 'testMenu']);
     $dummyItem->setBreadCrumbs(['basic', 'notice']);
     $menuConfigHandler = new MenuConfigHandler($configManager, $themeHandler);
     $menuConfigHandler->updateMenuItemTheme($dummyItem, 'desktopTheme', 'mobileTheme');
 }