/**
  * Renders fragment by window state.
  *
  * @param \Twig_Environment $environment
  * @param AbstractWindowsState $windowState
  *
  * @return string
  */
 public function renderFragment(\Twig_Environment $environment, AbstractWindowsState $windowState)
 {
     $result = '';
     $scheduleDelete = false;
     $windowState->setRenderedSuccessfully(false);
     try {
         $uri = $this->windowsStateRequestManager->getUri($windowState->getData());
         /** @var HttpKernelExtension $httpKernelExtension */
         $httpKernelExtension = $environment->getExtension('http_kernel');
         $result = $httpKernelExtension->renderFragment($uri);
         $windowState->setRenderedSuccessfully(true);
         return $result;
     } catch (NotFoundHttpException $e) {
         $scheduleDelete = true;
     } catch (\InvalidArgumentException $e) {
         $scheduleDelete = true;
     }
     if ($scheduleDelete) {
         try {
             $this->windowsStateManagerRegistry->getManager()->deleteWindowsState($windowState->getId());
         } catch (AccessDeniedException $e) {
             return $result;
         }
     }
     return $result;
 }
 public function testGetWindowsState()
 {
     $user = new User();
     $windowStateId = 42;
     $windowState = $this->createWindowState(['cleanUrl' => 'foo']);
     $token = $this->getMock('Symfony\\Component\\Security\\Core\\Authentication\\Token\\TokenInterface');
     $token->expects($this->once())->method('getUser')->willReturn($user);
     $this->tokenStorage->expects($this->once())->method('getToken')->willReturn($token);
     $repo = $this->getMockBuilder('Oro\\Bundle\\WindowsBundle\\Entity\\Repository\\WindowsStateRepository')->disableOriginalConstructor()->getMock();
     $this->doctrineHelper->expects($this->once())->method('getEntityRepository')->willReturn($repo);
     $repo->expects($this->once())->method('findBy')->with(['user' => $user, 'id' => $windowStateId])->willReturn($windowState);
     $this->requestStateManager->expects($this->never())->method($this->anything());
     $this->assertSame($windowState, $this->manager->getWindowsState($windowStateId));
 }
 /**
  * @param int $windowId
  * @return bool
  */
 public function updateWindowsState($windowId)
 {
     return (bool) $this->getRepository()->update($this->getUser(), $this->filterId($windowId), $this->requestStateManager->getData());
 }
 /**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage cleanUrl is missing
  */
 public function testDataEmpty()
 {
     $this->manager->getUri([]);
 }