diff options
author | Hannes Kindströmmer <hannes@kindstrommer.se> | 2017-03-20 17:14:09 +0100 |
---|---|---|
committer | Hannes Kindströmmer <hannes@kindstrommer.se> | 2017-03-21 11:35:45 +0100 |
commit | e3f2ed7d4ac64d23983739c90c97d7bee8df4dd3 (patch) | |
tree | 1198c067b78d2af0fda3f5ef3c759dea1d7ba6c9 | |
parent | 4f88e25a0c9bef08cea2af20de84cb6ffb2ad416 (diff) | |
download | ip1-php-sdk-e3f2ed7d4ac64d23983739c90c97d7bee8df4dd3.zip ip1-php-sdk-e3f2ed7d4ac64d23983739c90c97d7bee8df4dd3.tar.gz ip1-php-sdk-e3f2ed7d4ac64d23983739c90c97d7bee8df4dd3.tar.bz2 |
Implement OwnerID into Group
Signed-off-by: Hannes Kindströmmer <hannes@kindstrommer.se>
-rw-r--r-- | src/Recipient/ProcessedGroup.php | 30 | ||||
-rw-r--r-- | src/Recipient/RecipientFactory.php | 1 | ||||
-rw-r--r-- | tests/Recipient/ProcessedGroupTest.php | 7 | ||||
-rw-r--r-- | tests/Util/Util.php | 8 |
4 files changed, 41 insertions, 5 deletions
diff --git a/src/Recipient/ProcessedGroup.php b/src/Recipient/ProcessedGroup.php index 48e8605..8840bd3 100644 --- a/src/Recipient/ProcessedGroup.php +++ b/src/Recipient/ProcessedGroup.php @@ -37,6 +37,11 @@ class ProcessedGroup extends Group implements UpdatableComponentInterface, Membe */ private $updated; /** + * ID of account owning the Group + * @var string $ownerID + */ + private $ownerID; + /** * An array of memberships that the Group has. * * It is empty by default but is filled when the function getMemberships() is called if a Communicator is given @@ -66,30 +71,47 @@ class ProcessedGroup extends Group implements UpdatableComponentInterface, Membe protected $contactsFetched = false; const IS_READ_ONLY = false; /** - * ProcessedGroup Contstructor + * ProcessedGroup Contstructor. * @param string $name Name of the Group. * @param string $color A hexadecimal color. * @param integer $groupID An ID generated by the API. + * @param string $ownerID ID of account owning the Group. * @param \DateTime $created When the Group was initially created. * @param \DateTime $updated When the Group was last updated. */ - public function __construct(string $name, string $color, int $groupID, \DateTime $created, \DateTime $updated) - { + public function __construct( + string $name, + string $color, + int $groupID, + string $ownerID, + \DateTime $created, + \DateTime $updated + ) { + parent::__construct($name, $color); $this->groupID = $groupID; + $this->ownerID = $ownerID; $this->created = $created; $this->updated = $updated; $this->memberships = new ClassValidationArray(); $this->contacts = new ClassValidationArray(); } /** - * @return integer Group ID + * @return integer Group ID. */ public function getID(): int { return $this->groupID; } /** + * Returns ID of account owning the Group. + * @return string + */ + public function getOwnerID(): string + { + return $this->ownerID; + } + /** * Returns whether the object is read only or not. * @return boolean Whether the object is read only or not. */ diff --git a/src/Recipient/RecipientFactory.php b/src/Recipient/RecipientFactory.php index 918d2ee..3fffe39 100644 --- a/src/Recipient/RecipientFactory.php +++ b/src/Recipient/RecipientFactory.php @@ -156,6 +156,7 @@ class RecipientFactory $stdGroup->Name, $stdGroup->Color, $stdGroup->ID, + $stdGroup->OwnerID, new \DateTime($stdGroup->Created), new \DateTime($stdGroup->Modified) ); diff --git a/tests/Recipient/ProcessedGroupTest.php b/tests/Recipient/ProcessedGroupTest.php index 8dd6460..8147c2a 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-", $group->getOwnerID()); $this->assertTrue(is_int($processedGroup->getID())); $this->assertTrue(0 < $processedGroup->getID()); @@ -88,9 +91,10 @@ 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()); + $this->assertStringStartsWith("ip1-", $group->getOwnerID()); if ($editedGroup->getUpdated() !== $processedGroup->getUpdated()) { $this->addToAssertionCount(1); } else { @@ -107,6 +111,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..3f74a81 100644 --- a/tests/Util/Util.php +++ b/tests/Util/Util.php @@ -39,4 +39,12 @@ class Util } return $color; } + /** + * @todo Write account ID generator + */ + public static function getRandomAccountID(): string + { + //TODO: Write account ID generator + return "ip1-xxxxx"; + } } |