diff --git a/src/Response/Boolean.php b/src/Response/Boolean.php index 306bb08..af73a69 100644 --- a/src/Response/Boolean.php +++ b/src/Response/Boolean.php @@ -18,7 +18,7 @@ public function __construct( public readonly bool $value, ) {} - public function value(): bool + public function payload(): bool { return $this->value; } diff --git a/src/Response/Collection.php b/src/Response/Collection.php index 73d8734..bda1b0c 100644 --- a/src/Response/Collection.php +++ b/src/Response/Collection.php @@ -28,7 +28,7 @@ public function __construct( /** * @return array */ - public function value(): array + public function payload(): array { return $this->value; } diff --git a/src/Response/Delegated.php b/src/Response/Delegated.php index c047fe2..ce34c51 100644 --- a/src/Response/Delegated.php +++ b/src/Response/Delegated.php @@ -20,7 +20,7 @@ public function __construct( public readonly object $value, ) {} - public function value(): object + public function payload(): object { return $this->value; } diff --git a/src/Response/Integer.php b/src/Response/Integer.php index 35a8082..8b6a024 100644 --- a/src/Response/Integer.php +++ b/src/Response/Integer.php @@ -18,7 +18,7 @@ public function __construct( public readonly int $value, ) {} - public function value(): int + public function payload(): int { return $this->value; } diff --git a/src/Response/Map.php b/src/Response/Map.php index 04cd8c6..c753277 100644 --- a/src/Response/Map.php +++ b/src/Response/Map.php @@ -25,7 +25,7 @@ public function __construct( public readonly array $value, ) {} - public function value(): array + public function payload(): array { return $this->value; } diff --git a/src/Response/None.php b/src/Response/None.php index 7668df9..8677c3e 100644 --- a/src/Response/None.php +++ b/src/Response/None.php @@ -17,7 +17,7 @@ final class None extends Response /** * @return null */ - public function value(): mixed + public function payload(): mixed { return null; } diff --git a/src/Response/Numeric.php b/src/Response/Numeric.php index cf6597d..ebc6378 100644 --- a/src/Response/Numeric.php +++ b/src/Response/Numeric.php @@ -18,7 +18,7 @@ public function __construct( public readonly float $value, ) {} - public function value(): float + public function payload(): float { return $this->value; } diff --git a/src/Response/Text.php b/src/Response/Text.php index bbdcd33..420f5c3 100644 --- a/src/Response/Text.php +++ b/src/Response/Text.php @@ -18,7 +18,7 @@ public function __construct( public readonly string $value, ) {} - public function value(): string + public function payload(): string { return $this->value; } diff --git a/src/Response/TypeMapper.php b/src/Response/TypeMapper.php index c2b230c..87579a7 100644 --- a/src/Response/TypeMapper.php +++ b/src/Response/TypeMapper.php @@ -13,14 +13,14 @@ public function map(mixed $response): Response return match (true) { $response instanceof Response => $response, is_null($response) => new None(), - is_int($response) => new Integer(value: $response), - is_float($response) => new Numeric(value: $response), - is_bool($response) => new Boolean(value: $response), - is_string($response) => new Text(value: $response), - is_array($response) && !empty($response) && array_is_list($response) => new Collection(value: $response), - is_array($response) && !empty($response) && !array_is_list($response) => new Map(value: $response), - is_array($response) && empty($response) => new Collection(value: $response), - default => new Delegated(value: $response), + is_int($response) => new Integer($response), + is_float($response) => new Numeric($response), + is_bool($response) => new Boolean($response), + is_string($response) => new Text($response), + is_array($response) && !empty($response) && array_is_list($response) => new Collection($response), + is_array($response) && !empty($response) && !array_is_list($response) => new Map($response), + is_array($response) && empty($response) => new Collection($response), + default => new Delegated($response), }; } } diff --git a/tests/Unit/TypeMapperTest.php b/tests/Unit/TypeMapperTest.php index 6804acd..931da74 100644 --- a/tests/Unit/TypeMapperTest.php +++ b/tests/Unit/TypeMapperTest.php @@ -25,6 +25,7 @@ protected function setUp(): void public function test_it_can_map_type_to_response(mixed $data, Response $response): void { $this->assertEquals($this->typeMapper->map($data), $response); + $this->assertSame($data, $response->payload()); } public function providesDataTypes(): iterable