/**
  * testDeleteMenuPermission
  *
  * @return void
  */
 public function testDeleteMenuPermission()
 {
     $permissionFactory = $this->permissionFactory;
     $permissionFactory->shouldReceive('removeRegistered')->andReturn();
     // MenuEntity $menu
     $permissionHandler = new MenuPermissionHandler($this->permissionFactory, $this->groupRepoMock, $this->memberRepoMock);
     $menu = $this->getSampleMenuEntity();
     $permissionHandler->deleteMenuPermission($menu);
 }
 /**
  * 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']);
 }