SmsTestEventSubscriber.php in SMS Framework 2.1.x
File
tests/modules/sms_test/src/EventSubscriber/SmsTestEventSubscriber.php
View source
<?php
declare (strict_types=1);
namespace Drupal\sms_test\EventSubscriber;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Drupal\sms\Entity\SmsGateway;
use Drupal\sms\Event\SmsEvents;
use Drupal\sms\Event\RecipientGatewayEvent;
class SmsTestEventSubscriber implements EventSubscriberInterface {
public function testAddGateway200(RecipientGatewayEvent $event) {
if (\Drupal::state()
->get('sms_test_event_subscriber__test_gateway_200', FALSE)) {
$gateway = SmsGateway::load('test_gateway_200');
$event
->addGateway($gateway, 200);
}
}
public function testAddGateway400(RecipientGatewayEvent $event) {
if (\Drupal::state()
->get('sms_test_event_subscriber__test_gateway_400', FALSE)) {
$gateway = SmsGateway::load('test_gateway_400');
$event
->addGateway($gateway, 400);
}
}
public function testExecutionOrder(Event $event, $eventName) {
$execution_order = \Drupal::state()
->get('sms_test_event_subscriber__execution_order', []);
$execution_order[] = $eventName;
\Drupal::state()
->set('sms_test_event_subscriber__execution_order', $execution_order);
}
public static function getSubscribedEvents() {
$events[SmsEvents::MESSAGE_GATEWAY][] = [
'testAddGateway200',
];
$events[SmsEvents::MESSAGE_GATEWAY][] = [
'testAddGateway400',
];
$events[SmsEvents::MESSAGE_PRE_PROCESS][] = [
'testExecutionOrder',
];
$events[SmsEvents::MESSAGE_POST_PROCESS][] = [
'testExecutionOrder',
];
$events[SmsEvents::MESSAGE_QUEUE_PRE_PROCESS][] = [
'testExecutionOrder',
];
$events[SmsEvents::MESSAGE_QUEUE_POST_PROCESS][] = [
'testExecutionOrder',
];
$events[SmsEvents::MESSAGE_INCOMING_PRE_PROCESS][] = [
'testExecutionOrder',
];
$events[SmsEvents::MESSAGE_INCOMING_POST_PROCESS][] = [
'testExecutionOrder',
];
$events[SmsEvents::MESSAGE_OUTGOING_PRE_PROCESS][] = [
'testExecutionOrder',
];
$events[SmsEvents::MESSAGE_OUTGOING_POST_PROCESS][] = [
'testExecutionOrder',
];
return $events;
}
}