/**
  * @dataProvider statusCodeProvider
  */
 public function testStatusCode($annotationCode, $viewCode, $expectedCode)
 {
     $this->createViewResponseListener(['json' => true]);
     $viewAnnotation = new ViewAnnotation([]);
     $viewAnnotation->setStatusCode($annotationCode);
     $request = new Request();
     $request->setRequestFormat('json');
     $request->attributes->set('_view', $viewAnnotation);
     $this->templating->expects($this->any())->method('render')->will($this->returnValue('foo'));
     $view = new View();
     $view->setStatusCode($viewCode);
     $view->setData('foo');
     $event = $this->getResponseEvent($request, $view);
     $response = new Response();
     $event->expects($this->any())->method('setResponse')->will($this->returnCallback(function ($r) use(&$response) {
         $response = $r;
     }));
     $this->listener->onKernelView($event);
     $this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\Response', $response);
     $this->assertSame($expectedCode, $response->getStatusCode());
 }
 /**
  * @dataProvider statusCodeProvider
  */
 public function testStatusCode($annotationCode, $viewCode, $expectedCode)
 {
     $viewAnnotation = new ViewAnnotation([]);
     $viewAnnotation->setStatusCode($annotationCode);
     $request = new Request();
     $request->setRequestFormat('json');
     $request->attributes->set('_view', $viewAnnotation);
     $this->viewHandler = new ViewHandler(['json' => true]);
     $this->viewHandler->setContainer($this->container);
     // This is why we avoid container dependencies!
     $that = $this;
     $this->container->expects($this->exactly(2))->method('get')->with($this->logicalOr('fos_rest.view_handler', 'fos_rest.templating'))->will($this->returnCallback(function ($service) use($that) {
         return $service === 'fos_rest.view_handler' ? $that->viewHandler : $that->templating;
     }));
     $this->templating->expects($this->any())->method('render')->will($this->returnValue('foo'));
     $view = new View();
     $view->setStatusCode($viewCode);
     $view->setData('foo');
     $event = $this->getResponseEvent($request, $view);
     $response = new Response();
     $event->expects($this->any())->method('setResponse')->will($this->returnCallback(function ($r) use(&$response) {
         $response = $r;
     }));
     $this->listener->onKernelView($event);
     $this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\Response', $response);
     $this->assertSame($expectedCode, $response->getStatusCode());
 }