createDatabaseInterface(); $request = self::createStub(ServerRequest::class); $request->method('getParsedBodyParam')->willReturnMap([['db', null, 'test_db'], ['export_type', null, 'svg']]); $export = self::createStub(Export::class); $export->method('getExportSchemaInfo')->willReturn([ 'fileName' => 'file.svg', 'mediaType' => 'image/svg+xml', 'fileData' => 'file data', ]); $controller = new SchemaExportController($export, new ResponseRenderer(), ResponseFactory::create()); $response = $controller($request); self::assertNotNull($response); self::assertSame(StatusCodeInterface::STATUS_OK, $response->getStatusCode()); self::assertSame('file data', (string) $response->getBody()); if (! function_exists('xdebug_get_headers')) { return; } $headersList = xdebug_get_headers(); self::assertContains('Content-Disposition: attachment; filename="file.svg"', $headersList); self::assertContains('Content-Type: image/svg+xml', $headersList); self::assertContains('Content-Length: 9', $headersList); } }