Skip to content

Commit 21b905e

Browse files
committed
Cancel message test, some debugging and phpdoc fixes
1 parent ea23a7c commit 21b905e

File tree

4 files changed

+45
-10
lines changed

4 files changed

+45
-10
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.apikey
2+
*.swp
23
.idea/
34
vendor/

src/Spryng/SpryngRestApi/Resources/MessageClient.php

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,10 @@ class MessageClient extends BaseClient
2727
'scheduled_from',
2828
'scheduled_until',
2929
'status'
30-
]
30+
];
3131

3232
public function create(Message $message)
3333
{
34-
Utils::assert($message->encoding);
3534
Utils::assert($message->body);
3635
Utils::assert($message->originator);
3736
Utils::assert($message->recipients);
@@ -48,15 +47,17 @@ public function create(Message $message)
4847
->addParameter('originator', $message->getOriginator())
4948
->addParameter('recipients', $message->getRecipients())
5049
->addParameter('reference', $message->getReference())
50+
->addParameter('scheduled_at', $message->getScheduledAt())
5151
->send();
5252
}
53-
53+
5454
/**
5555
* List existing message instances. Use $filters to filter the results
5656
*
5757
* @param string[] $filters Filters to limit the results
58-
*
59-
* @return Spryng\SpryngRestApi\Http\Response
58+
*
59+
* @return Response|null
60+
* @throws ValidationException
6061
*/
6162
public function list($filters = [])
6263
{
@@ -83,12 +84,16 @@ public function list($filters = [])
8384
/**
8485
* Cancel a message scheduled in the future.
8586
*
86-
* @param mixed $id The ID of the message to be canceled
87+
* @param string|Message $id The ID of the message to be canceled
8788
*
88-
* @return Spryng\SpryngRestApi\Http\Response
89+
* @return Response
8990
*/
9091
public function cancel($id)
9192
{
93+
if ($id instanceof Message) // also allow message instances
94+
{
95+
$id = $id->getId();
96+
}
9297
return (new Request(
9398
$this->api->getBaseUrl(),
9499
HttpClient::METHOD_POST,

src/Spryng/SpryngRestApi/Utils.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Spryng\SpryngRestApi;
44

5-
use Spryng\SpryngRestApi\Exceptions;
5+
use Spryng\SpryngRestApi\Exceptions\ValidationException;
66

77
class Utils
88
{

test/MessageTest.php

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Spryng\SpryngRestApi\Test;
44

55
use PHPUnit\Framework\TestCase;
6+
use Spryng\SpryngRestApi\Exceptions\ValidationException;
67
use Spryng\SpryngRestApi\Objects\Message;
78
use Spryng\SpryngRestApi\Spryng;
89

@@ -13,7 +14,7 @@ class MessageTest extends TestCase
1314
{
1415
protected $API_KEY;
1516
protected $RECIPIENT = [''];
16-
protected $messageId = '';
17+
protected $messageId = '90797ce7-a20d-434a-9c00-553e31d9ce03';
1718

1819
/**
1920
* @var Spryng
@@ -34,12 +35,24 @@ public function testSendMessage()
3435
$message->setBody('test!');
3536
$message->setRecipients($this->RECIPIENT);
3637
$message->setOriginator('Spryng');
38+
$message->setEncoding('plain');
3739

38-
$response = $this->instance->message->send($message);
40+
$response = $this->instance->message->create($message);
3941

4042
$this->assertTrue($response->wasSuccessful());
4143
}
4244

45+
public function testMissingRequiredParametersThrowsException()
46+
{
47+
$message = new Message();
48+
$message->setBody('test!');
49+
$message->setRecipients($this->RECIPIENT);
50+
// Originator is missing
51+
52+
$this->expectException(ValidationException::class);
53+
$this->instance->message->create($message);
54+
}
55+
4356
public function testGetMessage()
4457
{
4558
$response = $this->instance->message->show($this->messageId);
@@ -53,6 +66,22 @@ public function testGetMessage()
5366
$this->assertNotNull($obj->getCreatedAt());
5467
}
5568

69+
public function testScheduleAndCancelMessage()
70+
{
71+
$message = new Message();
72+
$message->setBody('Scheduled');
73+
$message->setOriginator('Spryng');
74+
$message->setRecipients($this->RECIPIENT);
75+
$message->setScheduledAt('2022-01-01T15:00:00+00:00');
76+
77+
$response = $this->instance->message->create($message);
78+
$this->assertTrue($response->wasSuccessful());
79+
$message = $response->toObject();
80+
81+
$response = $this->instance->message->cancel($message->getId());
82+
$this->assertTrue($response->wasSuccessful());
83+
}
84+
5685
public function testShowAll()
5786
{
5887
$response = $this->instance->message->showAll(1, 20);

0 commit comments

Comments
 (0)