View source
<?php
namespace Drupal\Tests\sms\Functional;
use Drupal\sms\Direction;
use Drupal\sms\Message\SmsDeliveryReport;
use Drupal\sms\Message\SmsMessageReportStatus;
use Drupal\sms\Message\SmsMessageResult;
trait SmsFrameworkMessageTestTrait {
public function testSender() {
$sender = $this
->randomMachineName();
$sms_message = $this
->createSmsMessage();
$sms_message
->setSender($sender);
$this
->assertEquals($sender, $sms_message
->getSender());
}
public function testSenderNumber() {
$number = '1234567890';
$sms_message = $this
->createSmsMessage();
$sms_message
->setSenderNumber($number);
$this
->assertEquals($number, $sms_message
->getSenderNumber());
}
public function testMessage() {
$message = $this
->randomMachineName();
$sms_message1 = $this
->createSmsMessage();
$sms_message1
->setMessage($message);
$this
->assertEquals($message, $sms_message1
->getMessage());
}
public function testRecipients() {
$sms_message0 = $this
->createSmsMessage();
$sms_message1 = $this
->createSmsMessage();
$sms_message1
->addRecipients([
'1234567890',
]);
$sms_message2 = $this
->createSmsMessage();
$sms_message2
->addRecipients([
'1234567890',
'9087654321',
]);
$this
->assertEquals([], $sms_message0
->getRecipients());
$this
->assertEquals([
'1234567890',
], $sms_message1
->getRecipients());
$this
->assertEquals([
'1234567890',
'9087654321',
], $sms_message2
->getRecipients());
}
public function testRecipientAdd() {
$recipient1 = '123123123';
$recipient2 = '456456456';
$sms_message1 = $this
->createSmsMessage();
$sms_message1
->addRecipient($recipient1)
->addRecipient($recipient2);
$this
->assertEquals([
$recipient1,
$recipient2,
], $sms_message1
->getRecipients());
$sms_message2 = $this
->createSmsMessage();
$sms_message2
->addRecipients([
$recipient1,
$recipient1,
$recipient1,
$recipient2,
]);
$this
->assertEquals([
$recipient1,
$recipient2,
], $sms_message2
->getRecipients());
}
public function testRecipientsAdd() {
$recipient1 = '123123123';
$recipient2 = '456456456';
$sms_message2 = $this
->createSmsMessage();
$sms_message2
->addRecipients([
$recipient1,
$recipient2,
]);
$this
->assertEquals([
$recipient1,
$recipient2,
], $sms_message2
->getRecipients());
}
public function testRecipientRemove() {
$recipient1 = '123123123';
$recipient2 = '456456456';
$sms_message1 = $this
->createSmsMessage();
$sms_message1
->addRecipient($recipient1)
->addRecipient($recipient2);
$sms_message1
->removeRecipient($recipient1);
$this
->assertEquals([
$recipient2,
], $sms_message1
->getRecipients());
}
public function testRecipientsRemove() {
$recipients = [
'123123123',
'456456456',
'234234234',
];
$sms_message = $this
->createSmsMessage();
$sms_message
->addRecipients($recipients);
$this
->assertEquals($recipients, $sms_message
->getRecipients());
$sms_message
->removeRecipients([
'123123123',
'234234234',
]);
$this
->assertEquals([
'456456456',
], $sms_message
->getRecipients());
}
public function testDirection() {
$sms_message2 = $this
->createSmsMessage()
->setDirection(Direction::OUTGOING);
$this
->assertEquals(Direction::OUTGOING, $sms_message2
->getDirection());
$sms_message3 = $this
->createSmsMessage()
->setDirection(Direction::INCOMING);
$this
->assertEquals(Direction::INCOMING, $sms_message3
->getDirection());
}
public function testOptionsSet() {
$options = [
'foo' => $this
->randomMachineName(),
];
$sms_message1 = $this
->createSmsMessage();
$sms_message1
->setOption('foo', $options['foo']);
$this
->assertEquals($options, $sms_message1
->getOptions());
}
public function testOptionsRemove() {
$options = [
'foo' => $this
->randomMachineName(),
'bar' => $this
->randomMachineName(),
];
$sms_message1 = $this
->createSmsMessage();
$sms_message1
->setOption('foo', $options['foo']);
$sms_message1
->setOption('bar', $options['bar']);
$sms_message1
->removeOption('foo');
unset($options['foo']);
$this
->assertEquals($options, $sms_message1
->getOptions());
}
public function testResults() {
$error_message = $this
->getRandomGenerator()
->string();
$recipients = [
'2345678901',
'1234567890',
];
$reports = array_combine($recipients, array_map(function ($recipient) {
return (new SmsDeliveryReport())
->setRecipient($recipient)
->setStatus(SmsMessageReportStatus::DELIVERED);
}, $recipients));
$result = (new SmsMessageResult())
->setErrorMessage($error_message)
->setReports($reports);
$sms_message = $this
->createSmsMessage()
->addRecipients($recipients)
->setResult($result);
$result_actual = $sms_message
->getResult();
$this
->assertEquals($error_message, $result_actual
->getErrorMessage());
$this
->assertEquals($result
->getErrorMessage(), $result_actual
->getErrorMessage());
$this
->assertEquals($reports['1234567890']
->getStatus(), $sms_message
->getReport('1234567890')
->getStatus());
$this
->assertEquals($reports['2345678901']
->getStatus(), $sms_message
->getReport('2345678901')
->getStatus());
}
public function testUid() {
$sms_message1 = $this
->createSmsMessage();
$this
->assertEquals($sms_message1
->getUid(), NULL);
$sms_message2 = $this
->createSmsMessage();
$sms_message2
->setUid(22);
$this
->assertEquals(22, $sms_message2
->getUid());
}
public function testAutomated() {
$sms_message1 = $this
->createSmsMessage();
$this
->assertEquals(TRUE, $sms_message1
->isAutomated());
$sms_message2 = $this
->createSmsMessage();
$sms_message2
->setAutomated(FALSE);
$this
->assertEquals(FALSE, $sms_message2
->isAutomated());
}
public function testUuid() {
$sms1 = $this
->createSmsMessage();
$sms2 = $this
->createSmsMessage();
$this
->assertNotEquals($sms1
->getUuid(), $sms2
->getUuid());
}
public function testsChunkByRecipients() {
$sms_message = $this
->createSmsMessage();
$sms_message
->addRecipients([
'100',
'200',
'300',
'400',
'500',
]);
$sms_messages = $sms_message
->chunkByRecipients(2);
$this
->assertEquals(3, count($sms_messages));
$this
->assertEquals([
'100',
'200',
], $sms_messages[0]
->getRecipients());
$this
->assertEquals([
'300',
'400',
], $sms_messages[1]
->getRecipients());
$this
->assertEquals([
'500',
], $sms_messages[2]
->getRecipients());
}
}