summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Recipient/MembershipTest.php79
-rw-r--r--tests/Recipient/ProcessedContactTest.php3
-rw-r--r--tests/Recipient/ProcessedGroupTest.php6
-rw-r--r--tests/Util/Util.php12
-rw-r--r--tests/resources/processed_contact/list_processed_contact.json2
-rw-r--r--tests/resources/processed_contact/minimal_processed_contact.json2
-rw-r--r--tests/resources/processed_contact/processed_contact.json2
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"}