/** * @inheritdoc */ public function make($data, $statusCode = 200, array $headers = []) { $acceptedMediaType = $this->requestParser->acceptedMediaType(); $mediaType = $this->versionFactory->makeMediaType($acceptedMediaType); $representation = $mediaType->format($data); $headers = $this->setContentTypeHeader($headers, $acceptedMediaType); return $this->response->make($representation, $statusCode, $headers); }
function it_makes_a_response(\LaraPackage\Api\Contracts\Request\Parser $requestParser, ResponseFactory $response, \LaraPackage\Api\Contracts\Factory\VersionFactory $versionFactory, \LaraPackage\Api\Contracts\MediaType\Json $media, \Illuminate\Http\Response $illuminateResponse, \LaraPackage\Api\Contracts\Config\ApiVersion $versionInfoRetriever) { $mediaType = 'json'; $version = 4; $vendor = 'vnd.wps_api.'; $versionDesignator = 'v4'; $dataArray = ['data' => 'array']; $jsonData = json_encode($dataArray); $requestParser->acceptedMediaType()->shouldBeCalled()->willReturn($mediaType); $versionInfoRetriever->vendor($version)->shouldBeCalled()->willReturn($vendor); $versionInfoRetriever->versionDesignator($version)->shouldBeCalled()->willReturn($versionDesignator); $versionFactory->makeMediaType($mediaType)->shouldBeCalled()->willReturn($media); $media->format($dataArray)->shouldBeCalled()->willReturn($jsonData); $response->make($jsonData, 200, ['Content-Type' => 'application/' . $vendor . $versionDesignator . '+' . $mediaType])->shouldBeCalled()->willReturn($illuminateResponse); $this->make($dataArray)->shouldReturn($illuminateResponse); }