/** * @param $params * @param $context * @return mixed */ protected function prepareRouteParameters(array $params, array $context) { $newParams = $params; foreach ($params as $key => $val) { $newParams[$key] = $this->evaluator->evaluate($val, $context); } return $newParams; }
public function testWithRoute() { $view = $this->getMockBuilder(View::class)->disableOriginalConstructor()->getMock(); $route = new Route(); $route->setRoute('test_show'); $route->setParams(array('foo' => 'bar')); $route->setParameterNames(array()); $view->expects($this->atLeastOnce())->method('getLocation')->willReturn($route); $this->router = $this->getMockBuilder(Router::class)->disableOriginalConstructor()->getMock(); $this->router->expects($this->once())->method('generate')->with('test_show', ['foo' => 'bar'])->willReturn('/test/show'); $response = new Response(); $event = $this->getEvent(new Request([], [], ['_template' => $view]), $response); $this->evaluator->expects($this->once())->method('evaluate')->with('bar', $event->getRequest()->attributes->all())->willReturn('bar'); $listener = $this->getListener(); $listener->onKernelResponse($event); $this->assertEquals($response, $event->getResponse()); $this->assertEquals('/test/show', $response->headers->get('Location')); }