From f3c7fbed50fb59b95a1502a3770b5ab17d3d94af Mon Sep 17 00:00:00 2001 From: philipp lang Date: Sun, 6 Apr 2025 16:42:22 +0200 Subject: [PATCH] Revert "Add callable for fakes" --- src/Fakes/Fake.php | 25 ------------------------- src/Fakes/MembershipFake.php | 32 +++++++++++++++++++++++++------- 2 files changed, 25 insertions(+), 32 deletions(-) diff --git a/src/Fakes/Fake.php b/src/Fakes/Fake.php index 322db3c..a3395d5 100644 --- a/src/Fakes/Fake.php +++ b/src/Fakes/Fake.php @@ -56,29 +56,4 @@ abstract class Fake { return Http::response(''); } - - public function assertBodyMatches(string $is, array|callable $should): bool - { - $requestBody = json_decode($is, true); - - if (!is_array($requestBody)) { - return false; - } - - if (is_callable($should)) { - return $should($requestBody); - } - - foreach ($should as $key => $value) { - if (!array_key_exists($key, $requestBody)) { - return false; - } - - if ($requestBody[$key] !== $value) { - return false; - } - } - - return true; - } } diff --git a/src/Fakes/MembershipFake.php b/src/Fakes/MembershipFake.php index cee9ca3..d598867 100644 --- a/src/Fakes/MembershipFake.php +++ b/src/Fakes/MembershipFake.php @@ -12,7 +12,7 @@ class MembershipFake extends Fake public function fetches(int $memberId, array $membershipIds): self { Http::fake(function ($request) use ($memberId, $membershipIds) { - $url = 'https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/' . $memberId . '/flist'; + $url = 'https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/'.$memberId.'/flist'; if ($request->url() === $url && 'GET' === $request->method()) { return $this->collection(collect($membershipIds)->map(function ($membership) { return [ @@ -36,7 +36,7 @@ class MembershipFake extends Fake public function failsFetching(int $memberId, string $error = 'Error'): self { Http::fake(function ($request) use ($memberId, $error) { - $url = 'https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/' . $memberId . '/flist'; + $url = 'https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/'.$memberId.'/flist'; if ($request->url() === $url && 'GET' === $request->method()) { return $this->errorResponse($error); } @@ -48,7 +48,7 @@ class MembershipFake extends Fake public function failsFetchingWithHtml(int $memberId): self { Http::fake(function ($request) use ($memberId) { - $url = 'https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/' . $memberId . '/flist'; + $url = 'https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/'.$memberId.'/flist'; if ($request->url() === $url && 'GET' === $request->method()) { return $this->htmlResponse(); } @@ -63,7 +63,7 @@ class MembershipFake extends Fake public function shows(int $memberId, array $data): self { Http::fake(function ($request) use ($memberId, $data) { - $url = 'https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/' . $memberId . '/' . $data['id']; + $url = 'https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/'.$memberId.'/'.$data['id']; if ($request->url() === $url && 'GET' === $request->method()) { return $this->dataResponse(array_merge([ 'id' => 68, @@ -85,7 +85,7 @@ class MembershipFake extends Fake public function failsShowing(int $memberId, int $membershipId, ?string $error = 'Error'): self { Http::fake(function ($request) use ($memberId, $membershipId, $error) { - $url = 'https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/' . $memberId . '/' . $membershipId; + $url = 'https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/'.$memberId.'/'.$membershipId; if ($request->url() === $url && 'GET' === $request->method()) { return $this->errorResponse($error); } @@ -109,7 +109,7 @@ class MembershipFake extends Fake public function failsShowingWithHtml(int $memberId, int $membershipId): self { Http::fake(function ($request) use ($memberId, $membershipId) { - $url = 'https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/' . $memberId . '/' . $membershipId; + $url = 'https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/'.$memberId.'/'.$membershipId; if ($request->url() === $url && 'GET' === $request->method()) { return $this->htmlResponse(); } @@ -180,7 +180,7 @@ class MembershipFake extends Fake }); } - public function assertCreated(int $memberId, array|callable $payload): void + public function assertCreated(int $memberId, array $payload): void { $url = "https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/{$memberId}"; @@ -195,3 +195,21 @@ class MembershipFake extends Fake public function assertUpdated(int $memberId, array $payload): void { + $url = "https://nami.dpsg.de/ica/rest/nami/zugeordnete-taetigkeiten/filtered-for-navigation/gruppierung-mitglied/mitglied/{$memberId}/{$payload['id']}"; + Http::assertSent(function ($request) use ($url, $payload) { + if ($request->url() !== $url || 'PUT' !== $request->method()) { + return false; + } + + if (data_get($request, 'id') !== $payload['id']) { + return false; + } + + if (data_get($request, 'aktivBis') !== data_get($payload, 'aktivBis')) { + return false; + } + + return true; + }); + } +}