Neos\Flow\Tests\Unit\Mvc\Routing\RouterTest::resolveIteratesOverTheRegisteredRoutesAndReturnsTheResolvedUriPathIfAny PHP Метод

resolveIteratesOverTheRegisteredRoutesAndReturnsTheResolvedUriPathIfAny() публичный Метод

    public function resolveIteratesOverTheRegisteredRoutesAndReturnsTheResolvedUriPathIfAny()
    {
        $router = $this->getAccessibleMock(Router::class, ['createRoutesFromConfiguration']);
        $this->inject($router, 'routerCachingService', $this->mockRouterCachingService);
        $this->inject($router, 'systemLogger', $this->mockSystemLogger);
        $routeValues = ['foo' => 'bar'];
        $route1 = $this->getMockBuilder(Route::class)->disableOriginalConstructor()->setMethods(['resolves'])->getMock();
        $route1->expects($this->once())->method('resolves')->with($routeValues)->will($this->returnValue(false));
        $route2 = $this->getMockBuilder(Route::class)->disableOriginalConstructor()->setMethods(['resolves', 'getResolvedUriPath'])->getMock();
        $route2->expects($this->once())->method('resolves')->with($routeValues)->will($this->returnValue(true));
        $route2->expects($this->atLeastOnce())->method('getResolvedUriPath')->will($this->returnValue('route2'));
        $route3 = $this->getMockBuilder(Route::class)->disableOriginalConstructor()->setMethods(['resolves'])->getMock();
        $mockRoutes = [$route1, $route2, $route3];
        $router->expects($this->once())->method('createRoutesFromConfiguration');
        $router->_set('routes', $mockRoutes);
        $matchingRequestPath = $router->resolve($routeValues);
        $this->assertSame('route2', $matchingRequestPath);
    }