diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Recipient/MembershipTest.php | 79 | ||||
-rw-r--r-- | tests/Recipient/ProcessedContactTest.php | 3 | ||||
-rw-r--r-- | tests/Recipient/ProcessedGroupTest.php | 6 | ||||
-rw-r--r-- | tests/Util/Util.php | 12 | ||||
-rw-r--r-- | tests/resources/processed_contact/list_processed_contact.json | 2 | ||||
-rw-r--r-- | tests/resources/processed_contact/minimal_processed_contact.json | 2 | ||||
-rw-r--r-- | tests/resources/processed_contact/processed_contact.json | 2 |
7 files changed, 102 insertions, 4 deletions
diff --git a/tests/Recipient/MembershipTest.php b/tests/Recipient/MembershipTest.php new file mode 100644 index 0000000..081c0e7 --- /dev/null +++ b/tests/Recipient/MembershipTest.php @@ -0,0 +1,79 @@ +<?php +namespace IP1\RESTClient\Test\Recipient; + +use IP1\RESTClient\Recipient\Group; +use IP1\RESTClient\Recipient\Contact; +use IP1\RESTClient\Recipient\Membership; +use IP1\RESTClient\Test\Core\AbstractEnviromentProvider; +use IP1\RESTClient\Test\Util\Util; +use IP1\RESTClient\Core\ClassValidationArray; + +class MembershipTest extends AbstractEnviromentProvider +{ + + /** + * @dataProvider getMembershipArguments + */ + public function testConstructor($groupID, $contactID) + { + $m = new Membership($groupID, $contactID); + $this->assertEquals($groupID, $m->getGroupID()); + $this->assertEquals($contactID, $m->getContactID()); + } + public function getMembershipArguments(): array + { + $argumentArray = []; + for ($i = 0; $i < 50; $i++) { + $argumentArray[] = [random_int(0, PHP_INT_MAX), random_int(0, PHP_INT_MAX)]; + } + return $argumentArray; + } + /** + * @group api + */ + public function testAPI() + { + $contacts = []; + $groups = []; + $memberships = []; + for ($i = 0; $i < 10; $i++) { + $c = new Contact(Util::getRandomAlphaString(), Util::getRandomPhoneNumber()); + $contacts[] = $this->getCommunicator()->add($c); + $g = new Group(Util::getRandomAlphaString(), Util::getRandomHex()); + $groups[] = $this->getCommunicator()->add($g); + $m = new Membership($groups[$i]->getID(), $contacts[$i]->getID()); + $memberships[] = $this->getCommunicator()->add($m); + } + $this->assertEquals(10, count($contacts)); + $this->assertEquals(10, count($groups)); + $this->assertEquals(10, count($memberships)); + for ($i = 0; $i < count($memberships); $i++) { + $contactMemberships = $contacts[$i]->getMemberships($this->getCommunicator()); + $this->assertEquals(1, count($contactMemberships)); + $this->assertEquals($contactMemberships[0]->getContactID(), $contacts[$i]->getID()); + $this->assertEquals($contactMemberships[0]->getGroupID(), $groups[$i]->getID()); + + $contactGroups = $contacts[$i]->getGroups($this->getCommunicator()); + $this->assertEquals(1, count($contactGroups)); + $this->assertEquals(new ClassValidationArray($groups[$i]), $contactGroups); + } + } + public function tearDown() + { + if ($this->isCommunicatorEnabled()) { + $memberships = json_decode($this->getCommunicator()->get('api/memberships')); + foreach ($memberships as $key => $value) { + $this->getCommunicator()->delete('api/memberships/'.$value->ID); + } + + $contacts = json_decode($this->getCommunicator()->get('api/memberships')); + foreach ($contacts as $key => $value) { + $this->getCommunicator()->delete('api/memberships/'.$value->ID); + } + $groups = json_decode($this->getCommunicator()->get('api/groups')); + foreach ($groups as $key => $value) { + $this->getCommunicator()->delete('api/groups/'.$value->ID); + } + } + } +} diff --git a/tests/Recipient/ProcessedContactTest.php b/tests/Recipient/ProcessedContactTest.php index bbb77ee..7e7443f 100644 --- a/tests/Recipient/ProcessedContactTest.php +++ b/tests/Recipient/ProcessedContactTest.php @@ -77,6 +77,7 @@ class ProcessedContactTest extends AbstractEnviromentProvider new \DateTime($this->completeContactStd->Created, new DateTimeZone("UTC")), $contact->getCreated() ); + $this->assertEquals($this->completeContactStd->OwnerID, $contact->getOwnerID()); $this->assertEquals($this->completeContactStd->ID, $contact->getID()); $this->assertEquals(ProcessedContact::IS_READ_ONLY, $contact->isReadOnly()); $this->assertEquals(false, $contact->isReadOnly()); @@ -110,6 +111,7 @@ class ProcessedContactTest extends AbstractEnviromentProvider $this->assertEquals($newContact->getOrganization(), $alteredContact->getOrganization()); $this->assertEquals($newContact->getPhoneNumber(), $alteredContact->getPhoneNumber()); $this->assertEquals($newContact->getTitle(), $alteredContact->getTitle()); + $this->assertEquals($newContact->getOwnerID(), $alteredContact->getOwnerID()); $this->assertEquals($newContact->getID(), $alteredContact->getID()); $deletedContact = $this->getCommunicator()->remove($newContact); @@ -121,6 +123,7 @@ class ProcessedContactTest extends AbstractEnviromentProvider $this->assertEquals($newContact->getOrganization(), $deletedContact->getOrganization()); $this->assertEquals($newContact->getPhoneNumber(), $deletedContact->getPhoneNumber()); $this->assertEquals($newContact->getTitle(), $deletedContact->getTitle()); + $this->assertEquals($newContact->getOwnerID(), $deletedContact->getOwnerID()); $this->assertEquals($newContact->getID(), $deletedContact->getID()); } /** diff --git a/tests/Recipient/ProcessedGroupTest.php b/tests/Recipient/ProcessedGroupTest.php index 8dd6460..094c635 100644 --- a/tests/Recipient/ProcessedGroupTest.php +++ b/tests/Recipient/ProcessedGroupTest.php @@ -31,6 +31,7 @@ class ProcessedGroupTest extends AbstractEnviromentProvider $this->assertTrue(0 < $group->getID()); $this->assertEquals(\DateTime::class, get_class($group->getCreated())); $this->assertEquals(\DateTime::class, get_class($group->getUpdated())); + $this->assertStringStartsWith("ip1-", $group->getOwnerID()); $this->assertEquals($group->getCreated(), $group->getCreated(new \DateTimeZone("UTC"))); $this->assertEquals($group->getUpdated(), $group->getUpdated(new \DateTimeZone("UTC"))); if ($group->getCreated(new \DateTimeZone("Indian/Reunion")) !== $group->getCreated()) { @@ -52,6 +53,7 @@ class ProcessedGroupTest extends AbstractEnviromentProvider Util::getRandomAlphaString(), Util::getRandomHex(), random_int(1, PHP_INT_MAX), + Util::getRandomAccountID(), Util::getRandomDateTime(), Util::getRandomDateTime() ); @@ -80,6 +82,7 @@ class ProcessedGroupTest extends AbstractEnviromentProvider $processedGroup = $this->getCommunicator()->add($group); $this->assertEquals($group->getName(), $processedGroup->getName()); $this->assertEquals($group->getColor(), $processedGroup->getColor()); + $this->assertStringStartsWith("ip1-", $processedGroup->getOwnerID()); $this->assertTrue(is_int($processedGroup->getID())); $this->assertTrue(0 < $processedGroup->getID()); @@ -88,7 +91,7 @@ class ProcessedGroupTest extends AbstractEnviromentProvider public function editGroupToAPI(ProcessedGroup $processedGroup): ProcessedGroup { $editedGroup = $this->getCommunicator()->edit($processedGroup); - + $this->assertEquals($processedGroup->getOwnerID(), $editedGroup->getOwnerID()); $this->assertEquals($processedGroup->getName(), $editedGroup->getName()); $this->assertEquals($processedGroup->getColor(), $editedGroup->getColor()); if ($editedGroup->getUpdated() !== $processedGroup->getUpdated()) { @@ -107,6 +110,7 @@ class ProcessedGroupTest extends AbstractEnviromentProvider $this->assertEquals($editedGroup->getColor(), $removedGroup->getColor()); $this->assertEquals($editedGroup->getCreated(), $removedGroup->getCreated()); $this->assertEquals($editedGroup->getUpdated(), $removedGroup->getUpdated()); + $this->assertEquals($editedGroup->getOwnerID(), $removedGroup->getOwnerID()); $this->assertEquals($editedGroup->getContacts(), $removedGroup->getContacts()); $this->assertEquals($editedGroup->getMemberships(), $removedGroup->getMemberships()); $this->assertEquals($editedGroup->memberShipsFetched(), $removedGroup->memberShipsFetched()); diff --git a/tests/Util/Util.php b/tests/Util/Util.php index af9f85f..855f3ce 100644 --- a/tests/Util/Util.php +++ b/tests/Util/Util.php @@ -39,4 +39,16 @@ class Util } return $color; } + public static function getRandomAccountID(): string + { + return "ip1-".random_int(10000, 99999); + } + public static function getRandomPhoneNumber(): string + { + $retval = ''; + for ($i=0; $i < 11; $i++) { + $retval.=random_int(0, 9); + } + return $retval; + } } diff --git a/tests/resources/processed_contact/list_processed_contact.json b/tests/resources/processed_contact/list_processed_contact.json index ee6e9af..e2ab2da 100644 --- a/tests/resources/processed_contact/list_processed_contact.json +++ b/tests/resources/processed_contact/list_processed_contact.json @@ -1 +1 @@ -{"ID": 1735500,"FirstName": "Jack","LastName": "Sparrow","Organization": "Black Pearl Co.","Phone": "12025550134","Email": "jack@example.com"} +{"ID": 1735500,"OwnerID": "ip1-xxxxx","FirstName": "Jack","LastName": "Sparrow","Organization": "Black Pearl Co.","Phone": "12025550134","Email": "jack@example.com"} diff --git a/tests/resources/processed_contact/minimal_processed_contact.json b/tests/resources/processed_contact/minimal_processed_contact.json index 3a6ac87..a1a2b8a 100644 --- a/tests/resources/processed_contact/minimal_processed_contact.json +++ b/tests/resources/processed_contact/minimal_processed_contact.json @@ -1 +1 @@ -{"ID": 1735500,"FirstName": "Jack","Phone": "12025550134"} +{"ID": 1735500,"FirstName": "Jack","Phone": "12025550134","OwnerID": "ip1-xxxxx"} diff --git a/tests/resources/processed_contact/processed_contact.json b/tests/resources/processed_contact/processed_contact.json index 47abbf2..9b47edc 100644 --- a/tests/resources/processed_contact/processed_contact.json +++ b/tests/resources/processed_contact/processed_contact.json @@ -1 +1 @@ -{"Title":"Captain","Notes":"Why is the rum gone?","Created":"2017-03-02T10:39:53.497","Modified":"2017-03-02T10:39:53.497","ID":1735500,"FirstName":"Jack","LastName":"Sparrow","Organization":"Black Pearl Co.","Phone":"12025550134","Email":"jack@example.com"} +{"Title":"Captain","Notes":"Why is the rum gone?","Created":"2017-03-02T10:39:53.497","Modified":"2017-03-02T10:39:53.497","ID":1735500,"OwnerID": "ip1-xxxxx","FirstName":"Jack","LastName":"Sparrow","Organization":"Black Pearl Co.","Phone":"12025550134","Email":"jack@example.com"} |