/**
  * @param \Dafiti\Silex\Response $controllerResponse
  *
  * @return HttpFoundation\Response
  */
 protected function transform(\Dafiti\Silex\Response $controllerResponse)
 {
     $response = new HttpFoundation\JsonResponse();
     $response->headers->add(['Content-Type' => self::CONTENT_TYPE]);
     $response->setStatusCode($controllerResponse->getStatusCode());
     if ($this->hasError()) {
         $content = ['message' => $controllerResponse->getErrorMessage()];
         $response->setData($content);
         return $response;
     }
     $response->setStatusCode($controllerResponse->getStatusCode());
     $content = $this->getContent($controllerResponse);
     $response->setData($content);
     return $response;
 }
 /**
  * @param \Dafiti\Silex\Response $controllerResponse
  *
  * @return \Dafiti\Silex\Response
  */
 private function decorateErrorMessage(\Dafiti\Silex\Response $controllerResponse)
 {
     $message = HttpFoundation\Response::$statusTexts[$controllerResponse->getStatusCode()];
     if (!is_null($controllerResponse->getErrorMessage())) {
         $message = $controllerResponse->getErrorMessage();
     }
     $controllerResponse->setErrorMessage($message);
     return $controllerResponse;
 }
 /**
  * @dataProvider errorResponseProvider
  * @covers \Dafiti\Silex\Response\Factory\Json::transform
  */
 public function testCreateShouldReturnJsonResponseWithErrorContentAndDefaultMessage(\Dafiti\Silex\Response $controllerResponse, $errorMessage)
 {
     $expectedStatusCode = $controllerResponse->getStatusCode();
     $expectedContent = json_encode(['message' => $errorMessage]);
     $jsonFactory = new Factory\Json(Factory\Json::CONTENT_TYPE);
     $result = $jsonFactory->create($controllerResponse);
     $this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\JsonResponse', $result);
     $this->assertEquals($expectedStatusCode, $result->getStatusCode());
     $this->assertEquals($expectedContent, $result->getContent());
 }