示例#1
0
 /**
  * @param string       $route
  * @param array        $parameters
  * @param string|array $itemRoutes
  * @param array        $itemsRoutesParameters
  * @param boolean      $expected
  *
  * @dataProvider provideData
  */
 public function testMatching($route, array $parameters, $itemRoutes, array $itemsRoutesParameters, $expected)
 {
     $item = $this->getMock('Knp\\Menu\\ItemInterface');
     $item->expects($this->any())->method('getExtra')->with($this->logicalOr($this->equalTo('routes'), $this->equalTo('routesParameters')))->will($this->returnCallback(function ($parameter) use($itemRoutes, $itemsRoutesParameters) {
         switch ($parameter) {
             case 'routes':
                 return $itemRoutes;
             case 'routesParameters':
                 return $itemsRoutesParameters;
         }
     }));
     $request = new Request();
     $request->attributes->set('_route', $route);
     $request->attributes->set('_route_params', $parameters);
     $voter = new RouteVoter($request);
     $this->assertSame($expected, $voter->matchItem($item));
 }