/** * @param mixed $response * @param \Wandu\Http\Exception\HttpException $exception * @return \Wandu\Http\Psr\Response */ protected function responsify($response, HttpException $exception) { if ($response instanceof ResponseInterface) { return $response; } $isJson = false; if (!isset($response)) { $body = $exception->getReasonPhrase(); } elseif (!is_string($response) && !is_numeric($response)) { $body = json_encode($response); $isJson = true; } else { $body = $response; } $responseToReturn = new Response($exception->getStatusCode(), $exception->getReasonPhrase(), '1.1', [], new StringStream($body)); if ($isJson) { $responseToReturn = $responseToReturn->withHeader('Content-Type', 'application/json'); } return $responseToReturn; }
/** * @dataProvider provideExceptions * @param \Wandu\Http\Exception\HttpException $exception * @param int $statusCode * @param string $reasonPhrase */ public function testOtherHttpExceptions(HttpException $exception, $statusCode, $reasonPhrase) { static::assertSame($statusCode, $exception->getStatusCode()); static::assertSame($reasonPhrase, $exception->getReasonPhrase()); static::assertNull($exception->getBody()); }