diff --git a/src/Endpoints/Zones.php b/src/Endpoints/Zones.php index 7330a27..03773c2 100644 --- a/src/Endpoints/Zones.php +++ b/src/Endpoints/Zones.php @@ -233,4 +233,18 @@ class Zones implements API return false; } + + /** + * Delete Zone + */ + public function deleteZone(string $identifier): bool + { + $user = $this->adapter->delete('zones/' . $identifier); + $this->body = json_decode($user->getBody()); + if (isset($this->body->result->id)) { + return true; + } + + return false; + } } diff --git a/tests/Endpoints/ZoneDeleteTest.php b/tests/Endpoints/ZoneDeleteTest.php new file mode 100644 index 0000000..5ffd4e1 --- /dev/null +++ b/tests/Endpoints/ZoneDeleteTest.php @@ -0,0 +1,19 @@ +getPsr7JsonResponseForFixture('Endpoints/deleteZoneTest.json'); + $mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock(); + $mock->method('delete')->willReturn($response); + $mock->expects($this->once()) + ->method('delete') + ->with( + $this->equalTo('zones/023e105f4ecef8ad9ca31a8372d0c353') + ); + $zones = new \Cloudflare\API\Endpoints\Zones($mock); + $result = $zones->deleteZone('023e105f4ecef8ad9ca31a8372d0c353'); + $this->assertTrue($result); + $this->assertEquals('9a7806061c88ada191ed06f989cc3dac', $zones->getBody()->result->id); + } +} diff --git a/tests/Fixtures/Endpoints/deleteZoneTest.json b/tests/Fixtures/Endpoints/deleteZoneTest.json new file mode 100644 index 0000000..2951fe4 --- /dev/null +++ b/tests/Fixtures/Endpoints/deleteZoneTest.json @@ -0,0 +1,8 @@ +{ + "success": true, + "errors": [], + "messages": [], + "result": { + "id": "9a7806061c88ada191ed06f989cc3dac" + } +}