diff --git a/src/Endpoints/Accounts.php b/src/Endpoints/Accounts.php index 838afb9c..99d16d75 100644 --- a/src/Endpoints/Accounts.php +++ b/src/Endpoints/Accounts.php @@ -54,6 +54,16 @@ public function listAccounts( return (object)['result' => $this->body->result, 'result_info' => $this->body->result_info]; } + public function deleteAccount(string $account_id): \stdClass + { + $identifier = $account_id; + + $user = $this->adapter->delete('accounts/' . $identifier); + $this->body = json_decode($user->getBody()); + + return (object)['result' => $this->body->result]; + } + public function getDomains(string $accountID): array { $response = $this->adapter->get('accounts/' . $accountID . '/registrar/domains'); diff --git a/tests/Endpoints/AccountsTest.php b/tests/Endpoints/AccountsTest.php index 24f1f3ca..89f972e5 100644 --- a/tests/Endpoints/AccountsTest.php +++ b/tests/Endpoints/AccountsTest.php @@ -21,8 +21,8 @@ public function testListZones() ->with( $this->equalTo('accounts'), $this->equalTo([ - 'page' => 1, - 'per_page' => 20, + 'page' => 1, + 'per_page' => 20, 'direction' => 'desc', ]) ); @@ -83,4 +83,21 @@ public function testAddAccountWithCustomType() $accounts->addAccount('Foo Bar', 'enterprise'); $this->assertEquals('2bab6ace8c72ed3f09b9eca6db1396bb', $accounts->getBody()->result->id); } + + public function testDeleteAccount() + { + $response = $this->getPsr7JsonResponseForFixture('Endpoints/deleteAccount.json'); + + $mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock(); + $mock->method('delete')->willReturn($response); + $mock->expects($this->once()) + ->method('delete') + ->with( + $this->equalTo('accounts/91b86b19a774dab78915108354eef39b') + ); + + $account = new Accounts($mock); + $result = $account->deleteAccount('91b86b19a774dab78915108354eef39b'); + $this->assertEquals('91b86b19a774dab78915108354eef39b', $result->result->id); + } } diff --git a/tests/Fixtures/Endpoints/deleteAccount.json b/tests/Fixtures/Endpoints/deleteAccount.json new file mode 100644 index 00000000..b4c384d9 --- /dev/null +++ b/tests/Fixtures/Endpoints/deleteAccount.json @@ -0,0 +1,8 @@ +{ + "result": { + "id": "91b86b19a774dab78915108354eef39b" + }, + "success": true, + "errors": [], + "messages": [] +}