From 61d25a59046041f82b468af5fb37c0a01ff84960 Mon Sep 17 00:00:00 2001 From: netkas Date: Thu, 20 Mar 2025 13:14:49 -0400 Subject: [PATCH] Add unit test for address book contact deletion and update default page parameter in addressBookGetContacts method --- src/Socialbox/SocialClient.php | 2 +- tests/Socialbox/AddressBookTest.php | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/Socialbox/SocialClient.php b/src/Socialbox/SocialClient.php index 858be14..be4684e 100644 --- a/src/Socialbox/SocialClient.php +++ b/src/Socialbox/SocialClient.php @@ -290,7 +290,7 @@ * @return Contact[] An array of Contact objects * @throws RpcException Thrown if there was an error with the RPC request */ - public function addressBookGetContacts(int $page=0, ?int $limit=null): array + public function addressBookGetContacts(int $page=1, ?int $limit=null): array { $request = new RpcRequest(StandardMethods::ADDRESS_BOOK_GET_CONTACTS, parameters: [ 'page' => $page, diff --git a/tests/Socialbox/AddressBookTest.php b/tests/Socialbox/AddressBookTest.php index fbbfc7c..63c0a3d 100644 --- a/tests/Socialbox/AddressBookTest.php +++ b/tests/Socialbox/AddressBookTest.php @@ -36,4 +36,33 @@ $aliceClient->addressBookAddContact($johnClient->getIdentifiedAs()); $this->assertTrue($aliceClient->addressBookContactExists($johnClient->getIdentifiedAs())); } + + /** + * @throws DatabaseOperationException + * @throws ResolutionException + * @throws CryptographyException + * @throws RpcException + */ + public function testAddressBookDelete(): void + { + $johnClient = Helper::generateRandomClient(TEAPOT_DOMAIN, prefix: 'johnAddressBookTest'); + $johnClient->settingsAddInformationField(InformationFieldName::DISPLAY_NAME, 'John Doe'); + $johnClient->settingsSetPassword('SecretTestingPassword123'); + $this->assertTrue($johnClient->getSessionState()->isAuthenticated()); + + $aliceClient = Helper::generateRandomClient(COFFEE_DOMAIN, prefix: 'aliceAddressBookTest'); + $aliceClient->settingsAddInformationField(InformationFieldName::DISPLAY_NAME, 'Alice Smith'); + $aliceClient->settingsSetPassword('SecretTestingPassword123'); + $this->assertTrue($aliceClient->getSessionState()->isAuthenticated()); + + $this->assertTrue($johnClient->addressBookAddContact($aliceClient->getIdentifiedAs())); + $this->assertTrue($johnClient->addressBookContactExists($aliceClient->getIdentifiedAs())); + $this->assertTrue($johnClient->addressBookDeleteContact($aliceClient->getIdentifiedAs())); + $this->assertFalse($johnClient->addressBookContactExists($aliceClient->getIdentifiedAs())); + + $this->assertTrue($aliceClient->addressBookAddContact($johnClient->getIdentifiedAs())); + $this->assertTrue($aliceClient->addressBookContactExists($johnClient->getIdentifiedAs())); + $this->assertTrue($aliceClient->addressBookDeleteContact($johnClient->getIdentifiedAs())); + $this->assertFalse($aliceClient->addressBookContactExists($johnClient->getIdentifiedAs())); + } } \ No newline at end of file