'value']; $statusCode = CodesEnum::OK; $response = JsonResponseFactory::createJsonResponse($data, $statusCode); $this->assertSame($statusCode->value, $response->getStatusCode()); $this->assertSame('application/json', $response->getHeaderLine('Content-Type')); $this->assertSame(json_encode($data), (string) $response->getBody()); } /** * @throws \JsonException */ public function testCreateJsonResponseHandlesEmptyData(): void { $data = []; $statusCode = CodesEnum::NO_CONTENT; $response = JsonResponseFactory::createJsonResponse($data, $statusCode); $this->assertSame($statusCode->value, $response->getStatusCode()); $this->assertSame('application/json', $response->getHeaderLine('Content-Type')); $this->assertSame(json_encode($data), (string) $response->getBody()); } public function testCreateJsonResponseThrowsExceptionOnInvalidData(): void { $this->expectException(\JsonException::class); $data = ["invalid" => "\xB1\x31"]; JsonResponseFactory::createJsonResponse($data); } }