/**
  * storeItem
  *
  * @param MenuRetrieveHandler   $menuHandler       to get menu has item
  * @param MenuAlterHandler      $menuChanger       store item handler
  * @param MenuConfigHandler     $configHandler     store item config handler
  * @param MenuPermissionHandler $permissionHandler store item permission handler
  * @param string                $menuId            where to store
  *
  * @return $this|RedirectResponse
  * @throws Exception
  */
 public function storeItem(MenuRetrieveHandler $menuHandler, MenuAlterHandler $menuChanger, MenuConfigHandler $configHandler, MenuPermissionHandler $permissionHandler, $menuId)
 {
     XeDB::beginTransaction();
     $menu = $menuHandler->getMenu($menuId);
     try {
         $inputs = Request::except(['_token', 'theme_desktop', 'theme_mobile']);
         $parentThemeMode = Request::get('parentTheme', false);
         if ($parentThemeMode === false) {
             $desktopTheme = Request::get('theme_desktop');
             $mobileTheme = Request::get('theme_mobile');
         } else {
             $desktopTheme = null;
             $mobileTheme = null;
         }
         $item = $menuChanger->addItem($menu, $inputs);
         $configHandler->setMenuItemTheme($item, $desktopTheme, $mobileTheme);
         $permissionHandler->registerItemPermission($item, new Grant());
     } 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');
 }
 /**
  * testUpdateMenuItemTheme
  *
  * @return void
  */
 public function testUpdateMenuItemTheme()
 {
     //MenuItem $item, $theme
     $configManager = $this->configManager;
     $themeHandler = $this->themeHandler;
     $configManager->shouldReceive('add')->andReturn();
     $dummyItem = new MenuItem(['id' => 'testMenu']);
     $dummyItem->setBreadCrumbs(['basic', 'notice']);
     $menuConfigHandler = new MenuConfigHandler($configManager, $themeHandler);
     $menuConfigHandler->setMenuItemTheme($dummyItem, 'blueTheme', 'mobileTheme');
 }