From 816a4e2924fffa88511098563fcb08f5e1291b45 Mon Sep 17 00:00:00 2001 From: Dirk Hoekstra Date: Tue, 19 Sep 2017 17:30:00 +0200 Subject: [PATCH 01/12] Added support for MMS messages --- examples/mms-create.php | 28 +++++ examples/mms-delete.php | 21 ++++ examples/mms-list.php | 17 +++ examples/mms-view.php | 17 +++ src/MessageBird/Client.php | 6 + src/MessageBird/Objects/MmsMessage.php | 142 ++++++++++++++++++++++ src/MessageBird/Resources/MmsMessages.php | 20 +++ tests/integration/mms/MmsTest.php | 87 +++++++++++++ 8 files changed, 338 insertions(+) create mode 100644 examples/mms-create.php create mode 100644 examples/mms-delete.php create mode 100644 examples/mms-list.php create mode 100644 examples/mms-view.php create mode 100644 src/MessageBird/Objects/MmsMessage.php create mode 100644 src/MessageBird/Resources/MmsMessages.php create mode 100644 tests/integration/mms/MmsTest.php diff --git a/examples/mms-create.php b/examples/mms-create.php new file mode 100644 index 00000000..805a10bf --- /dev/null +++ b/examples/mms-create.php @@ -0,0 +1,28 @@ +originator = 'MessageBird'; +$MmsMessage->recipients = array(31621938645); +$MmsMessage->subject = "Check out this cool MMS"; +$MmsMessage->body = 'Have you seen this logo?'; +$MmsMessage->mediaUrls = array('https://www.messagebird.com/assets/images/og/messagebird.gif'); + +try { + $MmsMessageResult = $MessageBird->mmsMessages->create($MmsMessage); + var_dump($MmsMessageResult); + +} catch (\MessageBird\Exceptions\AuthenticateException $e) { + // That means that your accessKey is unknown + echo 'wrong login'; + +} catch (\MessageBird\Exceptions\BalanceException $e) { + // That means that you are out of credits, so do something about it. + echo 'no balance'; + +} catch (\Exception $e) { + echo $e->getMessage(); +} diff --git a/examples/mms-delete.php b/examples/mms-delete.php new file mode 100644 index 00000000..f992a46d --- /dev/null +++ b/examples/mms-delete.php @@ -0,0 +1,21 @@ +mmsMessages->delete('mms_message_id'); // id here + var_dump('Deleted: ' . $deleted); + +} catch (\MessageBird\Exceptions\AuthenticateException $e) { + // That means that your accessKey is unknown + echo 'wrong login'; + +} catch (\MessageBird\Exceptions\BalanceException $e) { + // That means that you are out of credits, so do something about it. + echo 'no balance'; + +} catch (\Exception $e) { + echo $e->getMessage(); +} diff --git a/examples/mms-list.php b/examples/mms-list.php new file mode 100644 index 00000000..90de1038 --- /dev/null +++ b/examples/mms-list.php @@ -0,0 +1,17 @@ +mmsMessages->getList(array('offset' => 0, 'limit' => 30)); + var_dump($MmsList); + +} catch (\MessageBird\Exceptions\AuthenticateException $e) { + // That means that your accessKey is unknown + echo 'wrong login'; + +} catch (\Exception $e) { + var_dump($e->getMessage()); +} \ No newline at end of file diff --git a/examples/mms-view.php b/examples/mms-view.php new file mode 100644 index 00000000..29cbc1b0 --- /dev/null +++ b/examples/mms-view.php @@ -0,0 +1,17 @@ +mmsMessages->read('mms_message_id'); // Set a MMS Message id + var_dump($MmsResult); + +} catch (\MessageBird\Exceptions\AuthenticateException $e) { + // That means that your accessKey is unknown + echo 'wrong login'; + +} catch (\Exception $e) { + var_dump($e->getMessage()); +} diff --git a/src/MessageBird/Client.php b/src/MessageBird/Client.php index 5f97416d..88558e06 100644 --- a/src/MessageBird/Client.php +++ b/src/MessageBird/Client.php @@ -54,6 +54,11 @@ class Client */ public $lookupHlr; + /** + * @var Resources\MmsMessages + */ + public $mmsMessages; + /** * @var Resources\Chat\Message */ @@ -115,6 +120,7 @@ public function __construct($accessKey = null, Common\HttpClient $httpClient = n $this->voicemessages = new Resources\VoiceMessage($this->HttpClient); $this->lookup = new Resources\Lookup($this->HttpClient); $this->lookupHlr = new Resources\LookupHlr($this->HttpClient); + $this->mmsMessages = new Resources\MmsMessages($this->HttpClient); $this->chatMessages = new Resources\Chat\Message($this->ChatAPIHttpClient); $this->chatChannels = new Resources\Chat\Channel($this->ChatAPIHttpClient); $this->chatPlatforms = new Resources\Chat\Platform($this->ChatAPIHttpClient); diff --git a/src/MessageBird/Objects/MmsMessage.php b/src/MessageBird/Objects/MmsMessage.php new file mode 100644 index 00000000..091eac9c --- /dev/null +++ b/src/MessageBird/Objects/MmsMessage.php @@ -0,0 +1,142 @@ +id; + } + + /** + * Get the created href + * + * @return string + */ + public function getHref() { + return $this->href; + } + + /** + * Get the $createdDatetime value + * + * @return string + */ + public function getCreatedDatetime() { + return $this->createdDatetime; + } + + /** + * @param $object + * + * @return $this|void + */ + public function loadFromArray($object) + { + parent::loadFromArray($object); + + if (!empty($this->recipients->items)) { + foreach($this->recipients->items as &$item) { + $Recipient = new Recipient(); + $Recipient->loadFromArray($item); + + $item = $Recipient; + } + } + + return $this; + } +} \ No newline at end of file diff --git a/src/MessageBird/Resources/MmsMessages.php b/src/MessageBird/Resources/MmsMessages.php new file mode 100644 index 00000000..ed453d81 --- /dev/null +++ b/src/MessageBird/Resources/MmsMessages.php @@ -0,0 +1,20 @@ +setObject(new Objects\MmsMessage()); + $this->setResourceName('mms'); + + parent::__construct($HttpClient); + } +} \ No newline at end of file diff --git a/tests/integration/mms/MmsTest.php b/tests/integration/mms/MmsTest.php new file mode 100644 index 00000000..b56c7f12 --- /dev/null +++ b/tests/integration/mms/MmsTest.php @@ -0,0 +1,87 @@ +client = new \MessageBird\Client('YOUR_ACCESS_KEY', $this->mockClient); + } + + /** + * @group createMms + */ + public function testCreateMms() + { + $MmsMessage = new \MessageBird\Objects\MmsMessage(); + $MmsMessage->originator = 'MessageBird'; + $MmsMessage->recipients = array(31612345678); + $MmsMessage->subject = 'Check out this cool MMS'; + $MmsMessage->body = 'Have you seen this logo?'; + $MmsMessage->mediaUrls = ['https://www.messagebird.com/assets/images/og/messagebird.gif']; + + $this->mockClient->method('performHttpRequest')->willReturn(array(200, '', ' + { + "id": "3d4ab432f259491da662c5de0f0c8dae", + "href": "https://rest.messagebird.com/mms/3d4ab432f259491da662c5de0f0c8dae", + "direction": "mt", + "originator": "MessageBird", + "subject": "Check out this cool MMS", + "body": "Have you seen this logo?", + "mediaUrls": [ + "https://www.messagebird.com/assets/images/og/messagebird.gif" + ], + "reference": null, + "scheduledDatetime": null, + "createdDatetime": "2017-09-19T15:08:46+00:00", + "recipients": { + "totalCount": 1, + "totalSentCount": 1, + "totalDeliveredCount": 0, + "totalDeliveryFailedCount": 0, + "items": [ + { + "recipient": 31612345678, + "status": "sent", + "statusDatetime": "2017-09-19T15:08:46+00:00" + } + ] + } + } + ')); + $this->mockClient->expects($this->once())->method('performHttpRequest')->with("POST", 'mms', null, '{"direction":"mt","originator":"MessageBird","recipients":[31612345678],"subject":"Check out this cool MMS","body":"Have you seen this logo?","mediaUrls":["https:\/\/www.messagebird.com\/assets\/images\/og\/messagebird.gif"],"reference":null,"scheduledDatetime":null,"createdDatetime":null}'); + $this->client->mmsMessages->create($MmsMessage); + } + + /** + * @expectedException MessageBird\Exceptions\ServerException + * @group listMms + */ + public function testListMms() + { + $this->mockClient->expects($this->once())->method('performHttpRequest')->with("GET", 'mms', array('offset' => 100, 'limit' => 30), null); + $this->client->mmsMessages->getList(array('offset' => 100, 'limit' => 30)); + } + + /** + * @expectedException MessageBird\Exceptions\ServerException + * @group deleteMms + */ + public function testDeleteMms() + { + $this->mockClient->expects($this->once())->method('performHttpRequest')->with("DELETE", 'mms/message_id', null, null); + $this->client->mmsMessages->delete('message_id'); + } + + /** + * @expectedException MessageBird\Exceptions\ServerException + * @group readMms + */ + public function testReadMms() + { + $this->mockClient->expects($this->once())->method('performHttpRequest')->with("GET", 'mms/message_id', null, null); + $this->client->mmsMessages->read('message_id'); + } + + + +} \ No newline at end of file From 716a7804063fc5efac0251a9808f8f47507b3f70 Mon Sep 17 00:00:00 2001 From: Dirk Hoekstra Date: Tue, 19 Sep 2017 17:31:58 +0200 Subject: [PATCH 02/12] Documentation fix --- src/MessageBird/Resources/MmsMessages.php | 5 +++++ tests/integration/mms/MmsTest.php | 9 --------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/MessageBird/Resources/MmsMessages.php b/src/MessageBird/Resources/MmsMessages.php index ed453d81..6196cacc 100644 --- a/src/MessageBird/Resources/MmsMessages.php +++ b/src/MessageBird/Resources/MmsMessages.php @@ -5,6 +5,11 @@ use MessageBird\Common; use MessageBird\Objects; +/** + * Class MmsMessages + * + * @package MessageBird\Resources + */ class MmsMessages extends Base { /** diff --git a/tests/integration/mms/MmsTest.php b/tests/integration/mms/MmsTest.php index b56c7f12..e35598f9 100644 --- a/tests/integration/mms/MmsTest.php +++ b/tests/integration/mms/MmsTest.php @@ -7,9 +7,6 @@ public function setUp() $this->client = new \MessageBird\Client('YOUR_ACCESS_KEY', $this->mockClient); } - /** - * @group createMms - */ public function testCreateMms() { $MmsMessage = new \MessageBird\Objects\MmsMessage(); @@ -54,7 +51,6 @@ public function testCreateMms() /** * @expectedException MessageBird\Exceptions\ServerException - * @group listMms */ public function testListMms() { @@ -64,7 +60,6 @@ public function testListMms() /** * @expectedException MessageBird\Exceptions\ServerException - * @group deleteMms */ public function testDeleteMms() { @@ -74,14 +69,10 @@ public function testDeleteMms() /** * @expectedException MessageBird\Exceptions\ServerException - * @group readMms */ public function testReadMms() { $this->mockClient->expects($this->once())->method('performHttpRequest')->with("GET", 'mms/message_id', null, null); $this->client->mmsMessages->read('message_id'); } - - - } \ No newline at end of file From f899a63dbe18ba097afb4ba3140a820ddf6a4982 Mon Sep 17 00:00:00 2001 From: Dirk Hoekstra Date: Tue, 19 Sep 2017 17:30:00 +0200 Subject: [PATCH 03/12] Added support for MMS messages --- examples/mms-create.php | 28 +++++ examples/mms-delete.php | 21 ++++ examples/mms-list.php | 17 +++ examples/mms-view.php | 17 +++ src/MessageBird/Client.php | 6 + src/MessageBird/Objects/MmsMessage.php | 142 ++++++++++++++++++++++ src/MessageBird/Resources/MmsMessages.php | 20 +++ tests/integration/mms/MmsTest.php | 87 +++++++++++++ 8 files changed, 338 insertions(+) create mode 100644 examples/mms-create.php create mode 100644 examples/mms-delete.php create mode 100644 examples/mms-list.php create mode 100644 examples/mms-view.php create mode 100644 src/MessageBird/Objects/MmsMessage.php create mode 100644 src/MessageBird/Resources/MmsMessages.php create mode 100644 tests/integration/mms/MmsTest.php diff --git a/examples/mms-create.php b/examples/mms-create.php new file mode 100644 index 00000000..805a10bf --- /dev/null +++ b/examples/mms-create.php @@ -0,0 +1,28 @@ +originator = 'MessageBird'; +$MmsMessage->recipients = array(31621938645); +$MmsMessage->subject = "Check out this cool MMS"; +$MmsMessage->body = 'Have you seen this logo?'; +$MmsMessage->mediaUrls = array('https://www.messagebird.com/assets/images/og/messagebird.gif'); + +try { + $MmsMessageResult = $MessageBird->mmsMessages->create($MmsMessage); + var_dump($MmsMessageResult); + +} catch (\MessageBird\Exceptions\AuthenticateException $e) { + // That means that your accessKey is unknown + echo 'wrong login'; + +} catch (\MessageBird\Exceptions\BalanceException $e) { + // That means that you are out of credits, so do something about it. + echo 'no balance'; + +} catch (\Exception $e) { + echo $e->getMessage(); +} diff --git a/examples/mms-delete.php b/examples/mms-delete.php new file mode 100644 index 00000000..f992a46d --- /dev/null +++ b/examples/mms-delete.php @@ -0,0 +1,21 @@ +mmsMessages->delete('mms_message_id'); // id here + var_dump('Deleted: ' . $deleted); + +} catch (\MessageBird\Exceptions\AuthenticateException $e) { + // That means that your accessKey is unknown + echo 'wrong login'; + +} catch (\MessageBird\Exceptions\BalanceException $e) { + // That means that you are out of credits, so do something about it. + echo 'no balance'; + +} catch (\Exception $e) { + echo $e->getMessage(); +} diff --git a/examples/mms-list.php b/examples/mms-list.php new file mode 100644 index 00000000..90de1038 --- /dev/null +++ b/examples/mms-list.php @@ -0,0 +1,17 @@ +mmsMessages->getList(array('offset' => 0, 'limit' => 30)); + var_dump($MmsList); + +} catch (\MessageBird\Exceptions\AuthenticateException $e) { + // That means that your accessKey is unknown + echo 'wrong login'; + +} catch (\Exception $e) { + var_dump($e->getMessage()); +} \ No newline at end of file diff --git a/examples/mms-view.php b/examples/mms-view.php new file mode 100644 index 00000000..29cbc1b0 --- /dev/null +++ b/examples/mms-view.php @@ -0,0 +1,17 @@ +mmsMessages->read('mms_message_id'); // Set a MMS Message id + var_dump($MmsResult); + +} catch (\MessageBird\Exceptions\AuthenticateException $e) { + // That means that your accessKey is unknown + echo 'wrong login'; + +} catch (\Exception $e) { + var_dump($e->getMessage()); +} diff --git a/src/MessageBird/Client.php b/src/MessageBird/Client.php index 5f97416d..88558e06 100644 --- a/src/MessageBird/Client.php +++ b/src/MessageBird/Client.php @@ -54,6 +54,11 @@ class Client */ public $lookupHlr; + /** + * @var Resources\MmsMessages + */ + public $mmsMessages; + /** * @var Resources\Chat\Message */ @@ -115,6 +120,7 @@ public function __construct($accessKey = null, Common\HttpClient $httpClient = n $this->voicemessages = new Resources\VoiceMessage($this->HttpClient); $this->lookup = new Resources\Lookup($this->HttpClient); $this->lookupHlr = new Resources\LookupHlr($this->HttpClient); + $this->mmsMessages = new Resources\MmsMessages($this->HttpClient); $this->chatMessages = new Resources\Chat\Message($this->ChatAPIHttpClient); $this->chatChannels = new Resources\Chat\Channel($this->ChatAPIHttpClient); $this->chatPlatforms = new Resources\Chat\Platform($this->ChatAPIHttpClient); diff --git a/src/MessageBird/Objects/MmsMessage.php b/src/MessageBird/Objects/MmsMessage.php new file mode 100644 index 00000000..091eac9c --- /dev/null +++ b/src/MessageBird/Objects/MmsMessage.php @@ -0,0 +1,142 @@ +id; + } + + /** + * Get the created href + * + * @return string + */ + public function getHref() { + return $this->href; + } + + /** + * Get the $createdDatetime value + * + * @return string + */ + public function getCreatedDatetime() { + return $this->createdDatetime; + } + + /** + * @param $object + * + * @return $this|void + */ + public function loadFromArray($object) + { + parent::loadFromArray($object); + + if (!empty($this->recipients->items)) { + foreach($this->recipients->items as &$item) { + $Recipient = new Recipient(); + $Recipient->loadFromArray($item); + + $item = $Recipient; + } + } + + return $this; + } +} \ No newline at end of file diff --git a/src/MessageBird/Resources/MmsMessages.php b/src/MessageBird/Resources/MmsMessages.php new file mode 100644 index 00000000..ed453d81 --- /dev/null +++ b/src/MessageBird/Resources/MmsMessages.php @@ -0,0 +1,20 @@ +setObject(new Objects\MmsMessage()); + $this->setResourceName('mms'); + + parent::__construct($HttpClient); + } +} \ No newline at end of file diff --git a/tests/integration/mms/MmsTest.php b/tests/integration/mms/MmsTest.php new file mode 100644 index 00000000..b56c7f12 --- /dev/null +++ b/tests/integration/mms/MmsTest.php @@ -0,0 +1,87 @@ +client = new \MessageBird\Client('YOUR_ACCESS_KEY', $this->mockClient); + } + + /** + * @group createMms + */ + public function testCreateMms() + { + $MmsMessage = new \MessageBird\Objects\MmsMessage(); + $MmsMessage->originator = 'MessageBird'; + $MmsMessage->recipients = array(31612345678); + $MmsMessage->subject = 'Check out this cool MMS'; + $MmsMessage->body = 'Have you seen this logo?'; + $MmsMessage->mediaUrls = ['https://www.messagebird.com/assets/images/og/messagebird.gif']; + + $this->mockClient->method('performHttpRequest')->willReturn(array(200, '', ' + { + "id": "3d4ab432f259491da662c5de0f0c8dae", + "href": "https://rest.messagebird.com/mms/3d4ab432f259491da662c5de0f0c8dae", + "direction": "mt", + "originator": "MessageBird", + "subject": "Check out this cool MMS", + "body": "Have you seen this logo?", + "mediaUrls": [ + "https://www.messagebird.com/assets/images/og/messagebird.gif" + ], + "reference": null, + "scheduledDatetime": null, + "createdDatetime": "2017-09-19T15:08:46+00:00", + "recipients": { + "totalCount": 1, + "totalSentCount": 1, + "totalDeliveredCount": 0, + "totalDeliveryFailedCount": 0, + "items": [ + { + "recipient": 31612345678, + "status": "sent", + "statusDatetime": "2017-09-19T15:08:46+00:00" + } + ] + } + } + ')); + $this->mockClient->expects($this->once())->method('performHttpRequest')->with("POST", 'mms', null, '{"direction":"mt","originator":"MessageBird","recipients":[31612345678],"subject":"Check out this cool MMS","body":"Have you seen this logo?","mediaUrls":["https:\/\/www.messagebird.com\/assets\/images\/og\/messagebird.gif"],"reference":null,"scheduledDatetime":null,"createdDatetime":null}'); + $this->client->mmsMessages->create($MmsMessage); + } + + /** + * @expectedException MessageBird\Exceptions\ServerException + * @group listMms + */ + public function testListMms() + { + $this->mockClient->expects($this->once())->method('performHttpRequest')->with("GET", 'mms', array('offset' => 100, 'limit' => 30), null); + $this->client->mmsMessages->getList(array('offset' => 100, 'limit' => 30)); + } + + /** + * @expectedException MessageBird\Exceptions\ServerException + * @group deleteMms + */ + public function testDeleteMms() + { + $this->mockClient->expects($this->once())->method('performHttpRequest')->with("DELETE", 'mms/message_id', null, null); + $this->client->mmsMessages->delete('message_id'); + } + + /** + * @expectedException MessageBird\Exceptions\ServerException + * @group readMms + */ + public function testReadMms() + { + $this->mockClient->expects($this->once())->method('performHttpRequest')->with("GET", 'mms/message_id', null, null); + $this->client->mmsMessages->read('message_id'); + } + + + +} \ No newline at end of file From 8a3c9a47f0d135b4907d5b5cfee94908139c79bc Mon Sep 17 00:00:00 2001 From: Dirk Hoekstra Date: Tue, 19 Sep 2017 17:31:58 +0200 Subject: [PATCH 04/12] Documentation fix --- src/MessageBird/Resources/MmsMessages.php | 5 +++++ tests/integration/mms/MmsTest.php | 9 --------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/MessageBird/Resources/MmsMessages.php b/src/MessageBird/Resources/MmsMessages.php index ed453d81..6196cacc 100644 --- a/src/MessageBird/Resources/MmsMessages.php +++ b/src/MessageBird/Resources/MmsMessages.php @@ -5,6 +5,11 @@ use MessageBird\Common; use MessageBird\Objects; +/** + * Class MmsMessages + * + * @package MessageBird\Resources + */ class MmsMessages extends Base { /** diff --git a/tests/integration/mms/MmsTest.php b/tests/integration/mms/MmsTest.php index b56c7f12..e35598f9 100644 --- a/tests/integration/mms/MmsTest.php +++ b/tests/integration/mms/MmsTest.php @@ -7,9 +7,6 @@ public function setUp() $this->client = new \MessageBird\Client('YOUR_ACCESS_KEY', $this->mockClient); } - /** - * @group createMms - */ public function testCreateMms() { $MmsMessage = new \MessageBird\Objects\MmsMessage(); @@ -54,7 +51,6 @@ public function testCreateMms() /** * @expectedException MessageBird\Exceptions\ServerException - * @group listMms */ public function testListMms() { @@ -64,7 +60,6 @@ public function testListMms() /** * @expectedException MessageBird\Exceptions\ServerException - * @group deleteMms */ public function testDeleteMms() { @@ -74,14 +69,10 @@ public function testDeleteMms() /** * @expectedException MessageBird\Exceptions\ServerException - * @group readMms */ public function testReadMms() { $this->mockClient->expects($this->once())->method('performHttpRequest')->with("GET", 'mms/message_id', null, null); $this->client->mmsMessages->read('message_id'); } - - - } \ No newline at end of file From 3ae94551fb9e1cfd7ba33ad98ff0b3e31c6bd007 Mon Sep 17 00:00:00 2001 From: Dirk Hoekstra Date: Tue, 19 Sep 2017 17:51:31 +0200 Subject: [PATCH 05/12] Fixed array notation for compatability with PHP 5.3 --- tests/integration/mms/MmsTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/mms/MmsTest.php b/tests/integration/mms/MmsTest.php index e35598f9..1a9bcae6 100644 --- a/tests/integration/mms/MmsTest.php +++ b/tests/integration/mms/MmsTest.php @@ -14,7 +14,7 @@ public function testCreateMms() $MmsMessage->recipients = array(31612345678); $MmsMessage->subject = 'Check out this cool MMS'; $MmsMessage->body = 'Have you seen this logo?'; - $MmsMessage->mediaUrls = ['https://www.messagebird.com/assets/images/og/messagebird.gif']; + $MmsMessage->mediaUrls = array('https://www.messagebird.com/assets/images/og/messagebird.gif'); $this->mockClient->method('performHttpRequest')->willReturn(array(200, '', ' { From f37fd4ce092fb79427d00865a37c6702ea9530a7 Mon Sep 17 00:00:00 2001 From: Dirk Hoekstra Date: Wed, 20 Sep 2017 11:06:27 +0200 Subject: [PATCH 06/12] Removed whitelines in examples --- examples/mms-create.php | 2 -- examples/mms-delete.php | 3 --- examples/mms-list.php | 2 -- examples/mms-view.php | 2 -- 4 files changed, 9 deletions(-) diff --git a/examples/mms-create.php b/examples/mms-create.php index 805a10bf..d8b8f852 100644 --- a/examples/mms-create.php +++ b/examples/mms-create.php @@ -18,11 +18,9 @@ } catch (\MessageBird\Exceptions\AuthenticateException $e) { // That means that your accessKey is unknown echo 'wrong login'; - } catch (\MessageBird\Exceptions\BalanceException $e) { // That means that you are out of credits, so do something about it. echo 'no balance'; - } catch (\Exception $e) { echo $e->getMessage(); } diff --git a/examples/mms-delete.php b/examples/mms-delete.php index f992a46d..8ec1e877 100644 --- a/examples/mms-delete.php +++ b/examples/mms-delete.php @@ -7,15 +7,12 @@ try { $deleted = $MessageBird->mmsMessages->delete('mms_message_id'); // id here var_dump('Deleted: ' . $deleted); - } catch (\MessageBird\Exceptions\AuthenticateException $e) { // That means that your accessKey is unknown echo 'wrong login'; - } catch (\MessageBird\Exceptions\BalanceException $e) { // That means that you are out of credits, so do something about it. echo 'no balance'; - } catch (\Exception $e) { echo $e->getMessage(); } diff --git a/examples/mms-list.php b/examples/mms-list.php index 90de1038..dd4db7e7 100644 --- a/examples/mms-list.php +++ b/examples/mms-list.php @@ -7,11 +7,9 @@ try { $MmsList = $MessageBird->mmsMessages->getList(array('offset' => 0, 'limit' => 30)); var_dump($MmsList); - } catch (\MessageBird\Exceptions\AuthenticateException $e) { // That means that your accessKey is unknown echo 'wrong login'; - } catch (\Exception $e) { var_dump($e->getMessage()); } \ No newline at end of file diff --git a/examples/mms-view.php b/examples/mms-view.php index 29cbc1b0..c05eec5e 100644 --- a/examples/mms-view.php +++ b/examples/mms-view.php @@ -7,11 +7,9 @@ try { $MmsResult = $MessageBird->mmsMessages->read('mms_message_id'); // Set a MMS Message id var_dump($MmsResult); - } catch (\MessageBird\Exceptions\AuthenticateException $e) { // That means that your accessKey is unknown echo 'wrong login'; - } catch (\Exception $e) { var_dump($e->getMessage()); } From 7ce0bc5bd504bb7649d17798b0903e7dacaf8277 Mon Sep 17 00:00:00 2001 From: Dirk Hoekstra Date: Wed, 20 Sep 2017 11:07:11 +0200 Subject: [PATCH 07/12] Improved MMS tests --- tests/integration/BaseTest.php | 7 ++ tests/integration/mms/MmsTest.php | 159 ++++++++++++++++++++---------- 2 files changed, 115 insertions(+), 51 deletions(-) diff --git a/tests/integration/BaseTest.php b/tests/integration/BaseTest.php index ee01a24b..91ed9d0f 100644 --- a/tests/integration/BaseTest.php +++ b/tests/integration/BaseTest.php @@ -1,9 +1,16 @@ mockClient = $this->getMockBuilder("\MessageBird\Common\HttpClient")->setConstructorArgs(array("fake.messagebird.dev"))->getMock(); + $this->client = new \MessageBird\Client('YOUR_ACCESS_KEY', $this->mockClient); } public function testClientConstructor() diff --git a/tests/integration/mms/MmsTest.php b/tests/integration/mms/MmsTest.php index 1a9bcae6..b4cf62cb 100644 --- a/tests/integration/mms/MmsTest.php +++ b/tests/integration/mms/MmsTest.php @@ -1,78 +1,135 @@ client = new \MessageBird\Client('YOUR_ACCESS_KEY', $this->mockClient); - } - public function testCreateMms() { $MmsMessage = new \MessageBird\Objects\MmsMessage(); $MmsMessage->originator = 'MessageBird'; - $MmsMessage->recipients = array(31612345678); $MmsMessage->subject = 'Check out this cool MMS'; $MmsMessage->body = 'Have you seen this logo?'; + $MmsMessage->recipients = array(31612345678); $MmsMessage->mediaUrls = array('https://www.messagebird.com/assets/images/og/messagebird.gif'); - $this->mockClient->method('performHttpRequest')->willReturn(array(200, '', ' - { - "id": "3d4ab432f259491da662c5de0f0c8dae", - "href": "https://rest.messagebird.com/mms/3d4ab432f259491da662c5de0f0c8dae", - "direction": "mt", - "originator": "MessageBird", - "subject": "Check out this cool MMS", - "body": "Have you seen this logo?", - "mediaUrls": [ - "https://www.messagebird.com/assets/images/og/messagebird.gif" - ], - "reference": null, - "scheduledDatetime": null, - "createdDatetime": "2017-09-19T15:08:46+00:00", - "recipients": { - "totalCount": 1, - "totalSentCount": 1, - "totalDeliveredCount": 0, - "totalDeliveryFailedCount": 0, - "items": [ - { - "recipient": 31612345678, - "status": "sent", - "statusDatetime": "2017-09-19T15:08:46+00:00" - } - ] + $this->mockClient->expects($this->once()) + ->method('performHttpRequest') + ->with('POST', 'mms', null, '{"direction":"mt","originator":"MessageBird","recipients":[31612345678],"subject":"Check out this cool MMS","body":"Have you seen this logo?","mediaUrls":["https:\/\/www.messagebird.com\/assets\/images\/og\/messagebird.gif"],"reference":null,"scheduledDatetime":null,"createdDatetime":null}') + ->willReturn(array(200, '', ' + { + "id": "message_id", + "href": "https://rest.messagebird.com/mms/message_id", + "direction": "mt", + "originator": "MessageBird", + "subject": "Check out this cool MMS", + "body": "Have you seen this logo?", + "mediaUrls": [ + "https://www.messagebird.com/assets/images/og/messagebird.gif" + ], + "reference": null, + "scheduledDatetime": null, + "createdDatetime": "2017-09-19T15:08:46+00:00", + "recipients": { + "totalCount": 1, + "totalSentCount": 1, + "totalDeliveredCount": 0, + "totalDeliveryFailedCount": 0, + "items": [ + { + "recipient": 31612345678, + "status": "sent", + "statusDatetime": "2017-09-19T15:08:46+00:00" + } + ] + } } - } - ')); - $this->mockClient->expects($this->once())->method('performHttpRequest')->with("POST", 'mms', null, '{"direction":"mt","originator":"MessageBird","recipients":[31612345678],"subject":"Check out this cool MMS","body":"Have you seen this logo?","mediaUrls":["https:\/\/www.messagebird.com\/assets\/images\/og\/messagebird.gif"],"reference":null,"scheduledDatetime":null,"createdDatetime":null}'); - $this->client->mmsMessages->create($MmsMessage); + ')); + + $MmsMessage = $this->client->mmsMessages->create($MmsMessage); + + $this->assertAttributeSame('message_id', 'id', $MmsMessage); + $this->assertAttributeSame('https://rest.messagebird.com/mms/message_id', 'href', $MmsMessage); } - /** - * @expectedException MessageBird\Exceptions\ServerException - */ public function testListMms() { - $this->mockClient->expects($this->once())->method('performHttpRequest')->with("GET", 'mms', array('offset' => 100, 'limit' => 30), null); - $this->client->mmsMessages->getList(array('offset' => 100, 'limit' => 30)); + $this->mockClient->expects($this->once()) + ->method('performHttpRequest') + ->with('GET', 'mms', array('offset' => '100', 'limit' => '30'), null) + ->willReturn(array(200, '', + '{ "offset": 0, "limit": 20, "count": 1, "totalCount": 1, + "links": { + "first": "https://rest.messagebird.com/mms/?offset=0&type=mms", + "previous": null, + "next": null, + "last": "https://rest.messagebird.com/mms/?offset=0&type=mms" + }, + "items": [ { + "id": "message_id", + "href": "https://rest.messagebird.com/mms/message_id", + "direction": "mt", + "type": "mms", + "originator": "MessageBird", + "body": "This is the body", + "reference": "This is the reference", + "validity": null, + "gateway": 9, + "typeDetails": { "mediaUrls": [ "https://www.messagebird.com/assets/images/og/messagebird.gif" ] }, + "datacoding": "plain", + "mclass": 1, + "scheduledDatetime": null, + "createdDatetime": "2017-09-20T08:01:38+00:00", + "recipients": { + "totalCount": 1, "totalSentCount": 1, "totalDeliveredCount": 0, "totalDeliveryFailedCount": 0, + "items": [ { "recipient": 31612345678, "status": "sent", "statusDatetime": "2017-09-20T08:01:38+00:00" } ] + } + } ] + }' + )); + + $MmsMessagesList = $this->client->mmsMessages->getList(array('offset' => 100, 'limit' => 30)); + + foreach($MmsMessagesList->items as $Item) { + $this->assertInstanceOf('\MessageBird\Objects\MmsMessage', $Item); + } } - /** - * @expectedException MessageBird\Exceptions\ServerException - */ public function testDeleteMms() { - $this->mockClient->expects($this->once())->method('performHttpRequest')->with("DELETE", 'mms/message_id', null, null); + $this->mockClient->expects($this->exactly(2)) + ->method('performHttpRequest') + ->with('DELETE', 'mms/message_id', null, null) + ->will($this->onConsecutiveCalls( + array(204, '', ''), + array(404, '', '{"errors":[{"code":20,"description":"message not found","parameter":null}]}') + )); + + $this->client->mmsMessages->delete('message_id'); + + $this->setExpectedException('\MessageBird\Exceptions\RequestException'); $this->client->mmsMessages->delete('message_id'); } - /** - * @expectedException MessageBird\Exceptions\ServerException - */ public function testReadMms() { - $this->mockClient->expects($this->once())->method('performHttpRequest')->with("GET", 'mms/message_id', null, null); - $this->client->mmsMessages->read('message_id'); + $this->mockClient->expects($this->exactly(2)) + ->method('performHttpRequest') + ->with('GET', $this->logicalOr('mms/message_id', 'mms/unknown_message_id'), null, null) + ->will($this->onConsecutiveCalls( + array('200', '', '{"id":"message_id","href":"https://rest.messagebird.com/mms/message_id","direction":"mt","originator":"MessageBird","subject":null,"body":null,"mediaUrls":["https://www.messagebird.com/assets/images/og/messagebird.gif"],"reference":null,"scheduledDatetime":null,"createdDatetime":"2017-09-20T08:01:38+00:00","recipients":{"totalCount":1,"totalSentCount":1,"totalDeliveredCount":0,"totalDeliveryFailedCount":0,"items":[{"recipient":31612345678,"status":"sent","statusDatetime":"2017-09-20T08:01:38+00:00"}]}}'), + array('404', '', '{"errors":[{"code":20,"description":"message not found","parameter":null}]}') + )); + + $MmsMessage = $this->client->mmsMessages->read('message_id'); + $this->assertAttributeEquals('message_id', 'id', $MmsMessage); + $this->assertAttributeEquals('https://rest.messagebird.com/mms/message_id', 'href', $MmsMessage); + $this->assertAttributeEquals('mt', 'direction', $MmsMessage); + $this->assertAttributeEquals('MessageBird', 'originator', $MmsMessage); + + foreach($MmsMessage->recipients->items as $Item) { + $this->assertInstanceOf('\MessageBird\Objects\Recipient', $Item); + $this->assertAttributeNotEmpty('recipient', $Item); + } + + $this->setExpectedException('\MessageBird\Exceptions\RequestException'); + $this->client->mmsMessages->read('unknown_message_id'); } } \ No newline at end of file From a13d1b8b1f771513238ad8a021761ac29bc7cfd8 Mon Sep 17 00:00:00 2001 From: Dirk Hoekstra Date: Wed, 20 Sep 2017 11:15:40 +0200 Subject: [PATCH 08/12] Example fix --- examples/mms-create.php | 3 +-- tests/integration/mms/MmsTest.php | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/mms-create.php b/examples/mms-create.php index d8b8f852..457b0e50 100644 --- a/examples/mms-create.php +++ b/examples/mms-create.php @@ -6,7 +6,7 @@ $MmsMessage = new \MessageBird\Objects\MmsMessage(); $MmsMessage->originator = 'MessageBird'; -$MmsMessage->recipients = array(31621938645); +$MmsMessage->recipients = array(31612345678); $MmsMessage->subject = "Check out this cool MMS"; $MmsMessage->body = 'Have you seen this logo?'; $MmsMessage->mediaUrls = array('https://www.messagebird.com/assets/images/og/messagebird.gif'); @@ -14,7 +14,6 @@ try { $MmsMessageResult = $MessageBird->mmsMessages->create($MmsMessage); var_dump($MmsMessageResult); - } catch (\MessageBird\Exceptions\AuthenticateException $e) { // That means that your accessKey is unknown echo 'wrong login'; diff --git a/tests/integration/mms/MmsTest.php b/tests/integration/mms/MmsTest.php index b4cf62cb..cefa43d6 100644 --- a/tests/integration/mms/MmsTest.php +++ b/tests/integration/mms/MmsTest.php @@ -1,6 +1,7 @@ assertAttributeSame('message_id', 'id', $MmsMessage); $this->assertAttributeSame('https://rest.messagebird.com/mms/message_id', 'href', $MmsMessage); + $this->assertAttributeSame('mt', 'direction', $MmsMessage); } public function testListMms() From 5c3209bf4fbbeeca00b6385717abb3345d895df5 Mon Sep 17 00:00:00 2001 From: Dirk Hoekstra Date: Wed, 20 Sep 2017 13:49:53 +0200 Subject: [PATCH 09/12] Add newlines at end of file --- examples/mms-list.php | 2 +- src/MessageBird/Objects/MmsMessage.php | 2 +- src/MessageBird/Resources/MmsMessages.php | 2 +- tests/integration/mms/MmsTest.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/mms-list.php b/examples/mms-list.php index dd4db7e7..1958a02b 100644 --- a/examples/mms-list.php +++ b/examples/mms-list.php @@ -12,4 +12,4 @@ echo 'wrong login'; } catch (\Exception $e) { var_dump($e->getMessage()); -} \ No newline at end of file +} diff --git a/src/MessageBird/Objects/MmsMessage.php b/src/MessageBird/Objects/MmsMessage.php index 091eac9c..9fbe4096 100644 --- a/src/MessageBird/Objects/MmsMessage.php +++ b/src/MessageBird/Objects/MmsMessage.php @@ -139,4 +139,4 @@ public function loadFromArray($object) return $this; } -} \ No newline at end of file +} diff --git a/src/MessageBird/Resources/MmsMessages.php b/src/MessageBird/Resources/MmsMessages.php index 6196cacc..2fb848bc 100644 --- a/src/MessageBird/Resources/MmsMessages.php +++ b/src/MessageBird/Resources/MmsMessages.php @@ -22,4 +22,4 @@ public function __construct(Common\HttpClient $HttpClient) parent::__construct($HttpClient); } -} \ No newline at end of file +} diff --git a/tests/integration/mms/MmsTest.php b/tests/integration/mms/MmsTest.php index cefa43d6..1de33eeb 100644 --- a/tests/integration/mms/MmsTest.php +++ b/tests/integration/mms/MmsTest.php @@ -134,4 +134,4 @@ public function testReadMms() $this->setExpectedException('\MessageBird\Exceptions\RequestException'); $this->client->mmsMessages->read('unknown_message_id'); } -} \ No newline at end of file +} From 71308a039be83aeb1e5981da09c8b22002332a26 Mon Sep 17 00:00:00 2001 From: Dirk Hoekstra Date: Wed, 20 Sep 2017 17:13:22 +0200 Subject: [PATCH 10/12] Improved MMS messages testing --- tests/integration/mms/MmsTest.php | 176 +++++++++++++++++------------- 1 file changed, 99 insertions(+), 77 deletions(-) diff --git a/tests/integration/mms/MmsTest.php b/tests/integration/mms/MmsTest.php index 1de33eeb..fb2f44b6 100644 --- a/tests/integration/mms/MmsTest.php +++ b/tests/integration/mms/MmsTest.php @@ -1,97 +1,63 @@ originator = 'MessageBird'; - $MmsMessage->subject = 'Check out this cool MMS'; - $MmsMessage->body = 'Have you seen this logo?'; - $MmsMessage->recipients = array(31612345678); - $MmsMessage->mediaUrls = array('https://www.messagebird.com/assets/images/og/messagebird.gif'); $this->mockClient->expects($this->once()) ->method('performHttpRequest') - ->with('POST', 'mms', null, '{"direction":"mt","originator":"MessageBird","recipients":[31612345678],"subject":"Check out this cool MMS","body":"Have you seen this logo?","mediaUrls":["https:\/\/www.messagebird.com\/assets\/images\/og\/messagebird.gif"],"reference":null,"scheduledDatetime":null,"createdDatetime":null}') - ->willReturn(array(200, '', ' - { - "id": "message_id", - "href": "https://rest.messagebird.com/mms/message_id", - "direction": "mt", - "originator": "MessageBird", - "subject": "Check out this cool MMS", - "body": "Have you seen this logo?", - "mediaUrls": [ - "https://www.messagebird.com/assets/images/og/messagebird.gif" - ], - "reference": null, - "scheduledDatetime": null, - "createdDatetime": "2017-09-19T15:08:46+00:00", - "recipients": { - "totalCount": 1, - "totalSentCount": 1, - "totalDeliveredCount": 0, - "totalDeliveryFailedCount": 0, - "items": [ - { - "recipient": 31612345678, - "status": "sent", - "statusDatetime": "2017-09-19T15:08:46+00:00" - } - ] - } - } - ')); + ->with('POST', 'mms', null, json_encode($MmsMessage)) + ->willReturn(array(422, '', '{"errors":[{"code":9,"description":"no (correct) recipients found","parameter":"recipients"}]}')); + + $this->client->mmsMessages->create($MmsMessage); + } + + public function testCreateMmsSuccess() + { + $MmsMessage = $this->generateDummyMessage(); + $dummyMessageId = 'message_id'; + + $this->mockClient->expects($this->once()) + ->method('performHttpRequest') + ->with('POST', 'mms', null, json_encode($MmsMessage)) + ->willReturn(array(200, '', $this->generateMmsServerResponse($MmsMessage, $dummyMessageId))); - $MmsMessage = $this->client->mmsMessages->create($MmsMessage); + $ResultMmsMessage = $this->client->mmsMessages->create($MmsMessage); - $this->assertAttributeSame('message_id', 'id', $MmsMessage); - $this->assertAttributeSame('https://rest.messagebird.com/mms/message_id', 'href', $MmsMessage); - $this->assertAttributeSame('mt', 'direction', $MmsMessage); + $this->assertMessagesAreEqual($MmsMessage, $ResultMmsMessage, $dummyMessageId); } public function testListMms() { + $dummyMessage = $this->generateDummyMessage(); + $this->mockClient->expects($this->once()) ->method('performHttpRequest') ->with('GET', 'mms', array('offset' => '100', 'limit' => '30'), null) ->willReturn(array(200, '', - '{ "offset": 0, "limit": 20, "count": 1, "totalCount": 1, + '{ + "offset": 0, "limit": 20, "count": 1, "totalCount": 1, "links": { "first": "https://rest.messagebird.com/mms/?offset=0&type=mms", "previous": null, "next": null, "last": "https://rest.messagebird.com/mms/?offset=0&type=mms" }, - "items": [ { - "id": "message_id", - "href": "https://rest.messagebird.com/mms/message_id", - "direction": "mt", - "type": "mms", - "originator": "MessageBird", - "body": "This is the body", - "reference": "This is the reference", - "validity": null, - "gateway": 9, - "typeDetails": { "mediaUrls": [ "https://www.messagebird.com/assets/images/og/messagebird.gif" ] }, - "datacoding": "plain", - "mclass": 1, - "scheduledDatetime": null, - "createdDatetime": "2017-09-20T08:01:38+00:00", - "recipients": { - "totalCount": 1, "totalSentCount": 1, "totalDeliveredCount": 0, "totalDeliveryFailedCount": 0, - "items": [ { "recipient": 31612345678, "status": "sent", "statusDatetime": "2017-09-20T08:01:38+00:00" } ] - } - } ] + "items": [ ' . $this->generateMmsServerResponse($dummyMessage, 'message_id') . ', + ' . $this->generateMmsServerResponse($dummyMessage, 'message_id_2') . '] }' )); - $MmsMessagesList = $this->client->mmsMessages->getList(array('offset' => 100, 'limit' => 30)); + $ResultMessages = $this->client->mmsMessages->getList(array('offset' => 100, 'limit' => 30)); + + $this->assertEquals(2, count($ResultMessages->items)); + $this->assertMessagesAreEqual($dummyMessage, $ResultMessages->items[0], 'message_id'); + $this->assertMessagesAreEqual($dummyMessage, $ResultMessages->items[1], 'message_id_2'); - foreach($MmsMessagesList->items as $Item) { - $this->assertInstanceOf('\MessageBird\Objects\MmsMessage', $Item); - } } public function testDeleteMms() @@ -112,26 +78,82 @@ public function testDeleteMms() public function testReadMms() { + $dummyMessage = $this->generateDummyMessage(); + $this->mockClient->expects($this->exactly(2)) ->method('performHttpRequest') ->with('GET', $this->logicalOr('mms/message_id', 'mms/unknown_message_id'), null, null) ->will($this->onConsecutiveCalls( - array('200', '', '{"id":"message_id","href":"https://rest.messagebird.com/mms/message_id","direction":"mt","originator":"MessageBird","subject":null,"body":null,"mediaUrls":["https://www.messagebird.com/assets/images/og/messagebird.gif"],"reference":null,"scheduledDatetime":null,"createdDatetime":"2017-09-20T08:01:38+00:00","recipients":{"totalCount":1,"totalSentCount":1,"totalDeliveredCount":0,"totalDeliveryFailedCount":0,"items":[{"recipient":31612345678,"status":"sent","statusDatetime":"2017-09-20T08:01:38+00:00"}]}}'), + array('200', '', $this->generateMmsServerResponse($dummyMessage, 'message_id')), array('404', '', '{"errors":[{"code":20,"description":"message not found","parameter":null}]}') )); - $MmsMessage = $this->client->mmsMessages->read('message_id'); - $this->assertAttributeEquals('message_id', 'id', $MmsMessage); - $this->assertAttributeEquals('https://rest.messagebird.com/mms/message_id', 'href', $MmsMessage); - $this->assertAttributeEquals('mt', 'direction', $MmsMessage); - $this->assertAttributeEquals('MessageBird', 'originator', $MmsMessage); - - foreach($MmsMessage->recipients->items as $Item) { - $this->assertInstanceOf('\MessageBird\Objects\Recipient', $Item); - $this->assertAttributeNotEmpty('recipient', $Item); - } + $ResultMmsMessage = $this->client->mmsMessages->read('message_id'); + $this->assertMessagesAreEqual($dummyMessage, $ResultMmsMessage, 'message_id'); $this->setExpectedException('\MessageBird\Exceptions\RequestException'); $this->client->mmsMessages->read('unknown_message_id'); } + + /** + * @return \MessageBird\Objects\MmsMessage + */ + private function generateDummyMessage() + { + $MmsMessage = new \MessageBird\Objects\MmsMessage(); + $MmsMessage->originator = "MessageBird"; + $MmsMessage->direction = 'ot'; + $MmsMessage->recipients = array(31621938645); + $MmsMessage->body = 'Have you seen this logo?'; + $MmsMessage->mediaUrls = array('https://www.messagebird.com/assets/images/og/messagebird.gif'); + return $MmsMessage; + } + + private function assertMessagesAreEqual(\MessageBird\Objects\MmsMessage $MmsMessage, \MessageBird\Objects\MmsMessage $ResultMmsMessage, $expectedId) + { + $this->assertAttributeEquals($expectedId, 'id', $ResultMmsMessage); + $this->assertAttributeEquals("https://rest.messagebird.com/mms/{$expectedId}", 'href', $ResultMmsMessage); + $this->assertAttributeEquals($MmsMessage->direction, 'direction', $ResultMmsMessage); + $this->assertAttributeEquals($MmsMessage->originator, 'originator', $ResultMmsMessage); + $this->assertAttributeEquals($MmsMessage->subject, 'subject', $ResultMmsMessage); + $this->assertAttributeEquals($MmsMessage->body, 'body', $ResultMmsMessage); + $this->assertAttributeEquals($MmsMessage->mediaUrls, 'mediaUrls', $ResultMmsMessage); + $this->assertAttributeEquals($MmsMessage->reference, 'reference', $ResultMmsMessage); + + foreach($ResultMmsMessage->recipients->items as $item) { + $this->assertArraySubset(array($item->recipient), $MmsMessage->recipients); + } + } + + /** + * @return string JSON string containing the generated server response. + */ + private function generateMmsServerResponse(\MessageBird\Objects\MmsMessage $MmsMessage, $messageId) + { + return '{ + "id": "' . $messageId . '", + "href": "https://rest.messagebird.com/mms/' . $messageId . '", + "direction": ' . json_encode($MmsMessage->direction) . ', + "originator": ' . json_encode($MmsMessage->originator) . ', + "subject": ' . json_encode($MmsMessage->subject) . ', + "body": ' . json_encode($MmsMessage->body) . ', + "mediaUrls": ' . json_encode($MmsMessage->mediaUrls) . ', + "reference": ' . json_encode($MmsMessage->reference) . ', + "scheduledDatetime": ' . json_encode($MmsMessage->scheduledDatetime) . ', + "createdDatetime": "2017-09-19T15:08:46+00:00", + "recipients": { + "totalCount": 1, + "totalSentCount": 1, + "totalDeliveredCount": 0, + "totalDeliveryFailedCount": 0, + "items": [ + { + "recipient": ' . json_encode($MmsMessage->recipients[0]) . ', + "status": "sent", + "statusDatetime": "2017-09-19T15:08:46+00:00" + } + ] + } + }'; + } } From 92fb05e950e619eadf5f612da77438afddb5f4a4 Mon Sep 17 00:00:00 2001 From: Dirk Hoekstra Date: Mon, 25 Sep 2017 10:36:30 +0200 Subject: [PATCH 11/12] Improved MMS messaging test --- tests/integration/mms/MmsTest.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/integration/mms/MmsTest.php b/tests/integration/mms/MmsTest.php index fb2f44b6..36375f13 100644 --- a/tests/integration/mms/MmsTest.php +++ b/tests/integration/mms/MmsTest.php @@ -40,7 +40,7 @@ public function testListMms() ->with('GET', 'mms', array('offset' => '100', 'limit' => '30'), null) ->willReturn(array(200, '', '{ - "offset": 0, "limit": 20, "count": 1, "totalCount": 1, + "offset": 0, "limit": 20, "count": 1, "totalCount": 2, "links": { "first": "https://rest.messagebird.com/mms/?offset=0&type=mms", "previous": null, @@ -54,6 +54,10 @@ public function testListMms() $ResultMessages = $this->client->mmsMessages->getList(array('offset' => 100, 'limit' => 30)); + $this->assertAttributeEquals(0, 'offset', $ResultMessages); + $this->assertAttributeEquals(1, 'count', $ResultMessages); + $this->assertAttributeEquals(2, 'totalCount', $ResultMessages); + $this->assertEquals(2, count($ResultMessages->items)); $this->assertMessagesAreEqual($dummyMessage, $ResultMessages->items[0], 'message_id'); $this->assertMessagesAreEqual($dummyMessage, $ResultMessages->items[1], 'message_id_2'); @@ -109,6 +113,12 @@ private function generateDummyMessage() return $MmsMessage; } + /** + * Asserts if 2 messages are equal. They are equal if all the attributes have the same value. + * @param \MessageBird\Objects\MmsMessage $MmsMessage + * @param \MessageBird\Objects\MmsMessage $ResultMmsMessage + * @param $expectedId Since the id field cannot be manually set this the id of the message is checked against this expectedId value. + */ private function assertMessagesAreEqual(\MessageBird\Objects\MmsMessage $MmsMessage, \MessageBird\Objects\MmsMessage $ResultMmsMessage, $expectedId) { $this->assertAttributeEquals($expectedId, 'id', $ResultMmsMessage); From 26fb7fbe280ad02456ba2e9e760591907783a0d3 Mon Sep 17 00:00:00 2001 From: Dirk Hoekstra Date: Mon, 25 Sep 2017 10:36:58 +0200 Subject: [PATCH 12/12] Improved MmsMessage documentation --- src/MessageBird/Objects/MmsMessage.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/MessageBird/Objects/MmsMessage.php b/src/MessageBird/Objects/MmsMessage.php index 9fbe4096..98fb0c0b 100644 --- a/src/MessageBird/Objects/MmsMessage.php +++ b/src/MessageBird/Objects/MmsMessage.php @@ -34,7 +34,7 @@ class MmsMessage extends Base { public $direction = 'mt'; /** - * The sender of the message. This can be a telephone number + * The sender of the MMS message. This can be a telephone number * (including country code) or an alphanumeric string. In case * of an alphanumeric string, the maximum length is 11 characters. * @@ -50,14 +50,14 @@ class MmsMessage extends Base { public $recipients = array(); /** - * The subject of the message. + * The subject of MMS the message. * * @var string */ public $subject; /** - * The body of the MmsMessage message. + * The body of the MMS message. * * @var string */ @@ -65,7 +65,7 @@ class MmsMessage extends Base { /** * The array of URL's to the media attachments that you want to - * send as part of the MmsMessage message. + * send as part of the MMS message. * * @var array */