From dbbd4a71ee9a098a1b6b6127d2c0afedaddae8cd Mon Sep 17 00:00:00 2001 From: Vitaly Bormotov Date: Tue, 7 Mar 2017 12:20:48 +0300 Subject: [PATCH] Fix isset($response->field) syntax (#34) --- lib/RetailCrm/Response/ApiResponse.php | 12 ++++++++++++ .../Tests/Response/ApiResponseTest.php | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/lib/RetailCrm/Response/ApiResponse.php b/lib/RetailCrm/Response/ApiResponse.php index 70c145a..9b170b3 100644 --- a/lib/RetailCrm/Response/ApiResponse.php +++ b/lib/RetailCrm/Response/ApiResponse.php @@ -121,6 +121,18 @@ class ApiResponse implements \ArrayAccess return $this->response[$name]; } + /** + * Allow to check if the property exists through object property + * + * @param string $name property name + * + * @return bool + */ + public function __isset($name) + { + return isset($this->response[$name]); + } + /** * Offset set * diff --git a/tests/RetailCrm/Tests/Response/ApiResponseTest.php b/tests/RetailCrm/Tests/Response/ApiResponseTest.php index 74e0fab..31123f5 100644 --- a/tests/RetailCrm/Tests/Response/ApiResponseTest.php +++ b/tests/RetailCrm/Tests/Response/ApiResponseTest.php @@ -230,4 +230,22 @@ class ApiResponseTest extends TestCase $response = new ApiResponse(201, '{ "success": true }'); unset($response['sssssssuccess']); } + + /** + * @group unit + */ + public function testMagicIsset() + { + $response = new ApiResponse(201, '{ "success": true }'); + + $this->assertTrue( + isset($response->success), + 'Response object returns property existing' + ); + + $this->assertFalse( + isset($response->suess), + 'Response object returns property existing' + ); + } }