From fb837f517ed3bb4e21e698943d987e23e2307b97 Mon Sep 17 00:00:00 2001 From: Michael Kaverin Date: Fri, 9 May 2025 10:25:22 +0200 Subject: [PATCH] Guest delete method --- src/Requests/Guest/DeleteRequest.php | 20 ++++++++++++++++++++ src/Resources/GuestResource.php | 6 ++++++ tests/Requests/Guest/DeleteRequestTest.php | 20 ++++++++++++++++++++ tests/Requests/Guest/GetRequestTest.php | 4 ++-- tests/Resources/GuestResourceTest.php | 14 ++++++++++++++ tests/TestCase.php | 11 ++++++----- 6 files changed, 68 insertions(+), 7 deletions(-) create mode 100644 src/Requests/Guest/DeleteRequest.php create mode 100644 tests/Requests/Guest/DeleteRequestTest.php diff --git a/src/Requests/Guest/DeleteRequest.php b/src/Requests/Guest/DeleteRequest.php new file mode 100644 index 0000000..1a150f2 --- /dev/null +++ b/src/Requests/Guest/DeleteRequest.php @@ -0,0 +1,20 @@ +code; + } +} diff --git a/src/Resources/GuestResource.php b/src/Resources/GuestResource.php index 4b8ba17..4b4435a 100644 --- a/src/Resources/GuestResource.php +++ b/src/Resources/GuestResource.php @@ -7,6 +7,7 @@ use AirLST\SdkPhp\Contracts\GuestResourceContract; use AirLST\SdkPhp\CoreApi; use AirLST\SdkPhp\Requests\Guest\CreateRequest; +use AirLST\SdkPhp\Requests\Guest\DeleteRequest; use AirLST\SdkPhp\Requests\Guest\GetRequest; use AirLST\SdkPhp\Requests\Guest\ListRequest; use AirLST\SdkPhp\Requests\Guest\UpdateRequest; @@ -52,4 +53,9 @@ public function update(string $code, array $data): Response { return $this->connector->send(new UpdateRequest($code, $data)); } + + public function delete(string $code): Response + { + return $this->connector->send(new DeleteRequest($code)); + } } diff --git a/tests/Requests/Guest/DeleteRequestTest.php b/tests/Requests/Guest/DeleteRequestTest.php new file mode 100644 index 0000000..99f3f08 --- /dev/null +++ b/tests/Requests/Guest/DeleteRequestTest.php @@ -0,0 +1,20 @@ +mock(DeleteRequest::class); + + $this->core->withMockClient($mockClient)->send(new DeleteRequest('guest-code')); + + $mockClient->assertSent(DeleteRequest::class); + } +} diff --git a/tests/Requests/Guest/GetRequestTest.php b/tests/Requests/Guest/GetRequestTest.php index ae97ed5..004c33a 100644 --- a/tests/Requests/Guest/GetRequestTest.php +++ b/tests/Requests/Guest/GetRequestTest.php @@ -13,8 +13,8 @@ public function testGet(): void { $mockClient = $this->mock(GetRequest::class); - $this->core->withMockClient($mockClient)->send(new GetRequest('event-id')); - + $this->core->withMockClient($mockClient)->send(new GetRequest('guest-code')); + $mockClient->assertSent(GetRequest::class); } } diff --git a/tests/Resources/GuestResourceTest.php b/tests/Resources/GuestResourceTest.php index ae26903..e56bbf2 100644 --- a/tests/Resources/GuestResourceTest.php +++ b/tests/Resources/GuestResourceTest.php @@ -6,6 +6,7 @@ use AirLST\SdkPhp\CoreApi; use AirLST\SdkPhp\Requests\Guest\CreateRequest; +use AirLST\SdkPhp\Requests\Guest\DeleteRequest; use AirLST\SdkPhp\Requests\Guest\GetRequest; use AirLST\SdkPhp\Requests\Guest\ListRequest; use AirLST\SdkPhp\Requests\Guest\UpdateRequest; @@ -85,6 +86,19 @@ public function testUpdate(): void ); } + public function testDelete(): void + { + $mockClient = $this->mock(DeleteRequest::class); + + $resource = $this->resource($this->core->withMockClient($mockClient)); + $result = $resource->delete('xyz'); + + $mockClient->assertSent( + fn (Request $request, Response $response) => + $request instanceof DeleteRequest && $result->body() === $response->body() + ); + } + protected function resource(CoreApi $core): GuestResource { return new GuestResource($core); diff --git a/tests/TestCase.php b/tests/TestCase.php index 876027d..280fbfb 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -4,6 +4,7 @@ namespace AirLST\SdkPhp\Tests; +use AirLST\SdkPhp\CoreApi; use PHPUnit\Framework\TestCase as BaseTestCase; use Saloon\Http\Faking\MockClient; use Saloon\Http\Faking\MockResponse; @@ -11,11 +12,11 @@ class TestCase extends BaseTestCase { - protected \AirLST\SdkPhp\CoreApi $core; + protected CoreApi $core; public function mock( - string $request, - array $expects = [], + string $request, + array $expects = [], int $status = 200 ): MockClient { @@ -31,6 +32,6 @@ protected function setUp(): void MockClient::destroyGlobal(); Config::preventStrayRequests(); - $this->core = new \AirLST\SdkPhp\CoreApi('api-key'); + $this->core = new CoreApi('api-key'); } -} \ No newline at end of file +}