summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHannes Kindströmmer <hannes@kindstrommer.se>2017-03-20 17:14:09 +0100
committerHannes Kindströmmer <hannes@kindstrommer.se>2017-03-21 11:35:45 +0100
commite3f2ed7d4ac64d23983739c90c97d7bee8df4dd3 (patch)
tree1198c067b78d2af0fda3f5ef3c759dea1d7ba6c9
parent4f88e25a0c9bef08cea2af20de84cb6ffb2ad416 (diff)
downloadip1-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.php30
-rw-r--r--src/Recipient/RecipientFactory.php1
-rw-r--r--tests/Recipient/ProcessedGroupTest.php7
-rw-r--r--tests/Util/Util.php8
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";
+ }
}