/**
  * @test
  */
 public function routeStoresMatchResultsInCacheIfNotFoundInCache()
 {
     $router = $this->getAccessibleRouterMock(['createRoutesFromConfiguration']);
     $matchResults = ['some' => 'match results'];
     $mockHttpRequest = $this->getMockBuilder(\TYPO3\Flow\Http\Request::class)->disableOriginalConstructor()->getMock();
     $mockRoute1 = $this->getMockBuilder(\TYPO3\Flow\Mvc\Routing\Route::class)->getMock();
     $mockRoute1->expects($this->once())->method('matches')->with($mockHttpRequest)->will($this->returnValue(false));
     $mockRoute2 = $this->getMockBuilder(\TYPO3\Flow\Mvc\Routing\Route::class)->getMock();
     $mockRoute2->expects($this->once())->method('matches')->with($mockHttpRequest)->will($this->returnValue(true));
     $mockRoute2->expects($this->once())->method('getMatchResults')->will($this->returnValue($matchResults));
     $router->_set('routes', [$mockRoute1, $mockRoute2]);
     $this->mockRouterCachingService->expects($this->once())->method('storeMatchResults')->with($mockHttpRequest, $matchResults);
     $this->assertSame($matchResults, $router->route($mockHttpRequest));
 }
 /**
  * @test
  */
 public function routeStoresMatchResultsInCacheIfNotFoundInCache()
 {
     $router = $this->getAccessibleMock('TYPO3\\Flow\\Mvc\\Routing\\Router', array('createRoutesFromConfiguration'));
     $this->inject($router, 'routerCachingService', $this->mockRouterCachingService);
     $this->inject($router, 'systemLogger', $this->mockSystemLogger);
     $matchResults = array('some' => 'match results');
     $mockHttpRequest = $this->getMockBuilder('TYPO3\\Flow\\Http\\Request')->disableOriginalConstructor()->getMock();
     $mockRoute1 = $this->getMockBuilder('TYPO3\\Flow\\Mvc\\Routing\\Route')->getMock();
     $mockRoute1->expects($this->once())->method('matches')->with($mockHttpRequest)->will($this->returnValue(FALSE));
     $mockRoute2 = $this->getMockBuilder('TYPO3\\Flow\\Mvc\\Routing\\Route')->getMock();
     $mockRoute2->expects($this->once())->method('matches')->with($mockHttpRequest)->will($this->returnValue(TRUE));
     $mockRoute2->expects($this->once())->method('getMatchResults')->will($this->returnValue($matchResults));
     $router->_set('routes', array($mockRoute1, $mockRoute2));
     $this->mockRouterCachingService->expects($this->once())->method('storeMatchResults')->with($mockHttpRequest, $matchResults);
     $this->assertSame($matchResults, $router->route($mockHttpRequest));
 }
 /**
  * @test
  */
 public function routeStoresMatchResultsInCacheIfNotFoundInCache()
 {
     $matchResults = array('some' => 'match results');
     $mockActionRequest = $this->getMockBuilder('TYPO3\\Flow\\Mvc\\ActionRequest')->disableOriginalConstructor()->getMock();
     $mockActionRequest->expects($this->once())->method('getArguments')->will($this->returnValue(array()));
     $mockHttpRequest = $this->getMockBuilder('TYPO3\\Flow\\Http\\Request')->disableOriginalConstructor()->getMock();
     $mockHttpRequest->expects($this->once())->method('createActionRequest')->will($this->returnValue($mockActionRequest));
     $mockRoute1 = $this->getMockBuilder('TYPO3\\Flow\\Mvc\\Routing\\Route')->getMock();
     $mockRoute1->expects($this->once())->method('matches')->with($mockHttpRequest)->will($this->returnValue(FALSE));
     $mockRoute2 = $this->getMockBuilder('TYPO3\\Flow\\Mvc\\Routing\\Route')->getMock();
     $mockRoute2->expects($this->once())->method('matches')->with($mockHttpRequest)->will($this->returnValue(TRUE));
     $mockRoute2->expects($this->once())->method('getMatchResults')->will($this->returnValue($matchResults));
     $this->router->_set('routes', array($mockRoute1, $mockRoute2));
     $this->mockRouterCachingService->expects($this->once())->method('storeMatchResults')->with($mockHttpRequest, $matchResults);
     $this->assertSame($mockActionRequest, $this->router->route($mockHttpRequest));
 }