/** * @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()); }
/** * @param \Dafiti\Silex\Response $controllerResponse * * @return array */ private function getContent(\Dafiti\Silex\Response $controllerResponse) { $content = $controllerResponse->getContent(); if (is_null($content)) { return []; } if (!is_array($content)) { return [$content]; } return $content; }
/** * @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; }