/**
* @dataProvider setProvider
*/
public function testSetUrl($parameter, $url, $string, $expected)
{
$category = ['id' => 3, 'name' => 'test'];
$manager = $this->prophesize(CategoryManagerInterface::class);
$requestStack = $this->prophesize(RequestStack::class);
$request = $this->prophesize(Request::class);
$requestReveal = $request->reveal();
$requestReveal->query = new ParameterBag([$parameter => $string]);
$requestStack->getCurrentRequest()->willReturn($requestReveal);
$request->get($parameter, '')->willReturn($string);
$request->getPathInfo()->willReturn($url);
$serializer = $this->prophesize(SerializerInterface::class);
$requestHandler = new CategoryRequestHandler($requestStack->reveal());
$extension = new CategoryTwigExtension($manager->reveal(), $requestHandler, $serializer->reveal(), $this->getMemoizeCache());
$result = $extension->setCategoryUrlFunction($category, $parameter);
$this->assertEquals($url . '?' . $parameter . '=' . urlencode($expected), $result);
}