From 44a9a01d6c004c06be53df9f0144f0823f58e47e Mon Sep 17 00:00:00 2001 From: Dennis Ameling Date: Fri, 26 Mar 2021 14:15:22 +0100 Subject: [PATCH] Fix mock handler on Mautic 4 --- Connection/MockedHandler.php | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/Connection/MockedHandler.php b/Connection/MockedHandler.php index 29543f4..c4c2edd 100644 --- a/Connection/MockedHandler.php +++ b/Connection/MockedHandler.php @@ -5,18 +5,21 @@ namespace MauticPlugin\HelloWorldBundle\Connection; use GuzzleHttp\Handler\MockHandler; +use GuzzleHttp\Promise; +use GuzzleHttp\Promise\PromiseInterface; + use function GuzzleHttp\Psr7\parse_query; use GuzzleHttp\Psr7\Response; use Psr\Http\Message\RequestInterface; class MockedHandler extends MockHandler { - public function __invoke(RequestInterface $request, array $options) + public function __invoke(RequestInterface $request, array $options): PromiseInterface { return $this->getResponse($request); } - private function getResponse(RequestInterface $request): Response + private function getResponse(RequestInterface $request): PromiseInterface { $path = $request->getUri()->getPath(); $method = $request->getMethod(); @@ -59,7 +62,7 @@ private function getResponse(RequestInterface $request): Response throw new \Exception(sprintf('%s is not supported for method %s', $path, $method)); } - private function getCitizens(int $page): Response + private function getCitizens(int $page): PromiseInterface { $results = 1 === $page ? @@ -67,14 +70,14 @@ private function getCitizens(int $page): Response : '[]'; - return new Response( + return Promise\Create::promiseFor(new Response( 200, ['Content-Type' => 'application/json; charset=UTF-8'], $results - ); + )); } - private function getWorlds(int $page): Response + private function getWorlds(int $page): PromiseInterface { $results = 1 === $page ? @@ -82,14 +85,14 @@ private function getWorlds(int $page): Response : '[]'; - return new Response( + return Promise\Create::promiseFor(new Response( 200, ['Content-Type' => 'application/json; charset=UTF-8'], $results - ); + )); } - private function getUpsertResponse(array $objects): Response + private function getUpsertResponse(array $objects): PromiseInterface { $results = []; foreach ($objects as $object) { @@ -102,21 +105,21 @@ private function getUpsertResponse(array $objects): Response ]; } - return new Response( + return Promise\Create::promiseFor(new Response( 200, ['Content-Type' => 'application/json; charset=UTF-8'], json_encode($results) - ); + )); } - private function getFields(string $object): Response + private function getFields(string $object): PromiseInterface { $results = file_get_contents(sprintf(__DIR__.'/../Tests/Unit/Connection/json/%s_fields.json', $object)); - return new Response( + return Promise\Create::promiseFor(new Response( 200, ['Content-Type' => 'application/json; charset=UTF-8'], $results - ); + )); } }