/** * @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)); }