Elgg\Notifications\InstantNotificationEvent::getDescription PHP Метод

getDescription() публичный Метод

Get a description of the event
public getDescription ( ) : string
Результат string
    public function getDescription()
    {
        if (!$this->object) {
            return $this->action;
        }
        return implode(':', [$this->action, $this->object->getType(), $this->object->getSubtype()]);
    }

Usage Example

Пример #1
0
 /**
  * @group InstantNotificationsService
  */
 public function testCanNotifyUserWithoutAnObject()
 {
     $from = $this->mocks()->getUser();
     $to1 = $this->mocks()->getUser();
     $to2 = $this->mocks()->getUser();
     create_metadata($to2->guid, 'notification:method:test_method', true, '', $to2->guid, ACCESS_PUBLIC);
     $to3 = $this->mocks()->getUser();
     $subject = 'Test message';
     $body = 'Lorem ipsum';
     $event = new InstantNotificationEvent(null, null, $from);
     $this->hooks->registerHandler('get', 'subscriptions', function ($hook, $type, $return) use($to3) {
         $return[$to3->guid] = ['test_method'];
         return $return;
     });
     $this->hooks->registerHandler('prepare', 'notification', function ($hook, $type, $notification) {
         $notification->prepare_hook = true;
         return $notification;
     });
     $this->hooks->registerHandler('prepare', "notification:{$event->getDescription()}", function ($hook, $type, $notification) {
         $notification->granular_prepare_hook = true;
         return $notification;
     });
     $this->hooks->registerHandler('format', 'notification:test_method', function ($hook, $type, $notification) {
         $notification->format_hook = true;
         return $notification;
     });
     $sent = 0;
     $this->hooks->registerHandler('send', 'notification:test_method', function ($hook, $type, $return, $params) use(&$sent, $subject, $body, $event) {
         $sent++;
         $notification = $params['notification'];
         $this->assertInstanceOf(Notification::class, $notification);
         $this->assertEquals($notification->subject, $subject);
         $this->assertEquals($notification->body, $body);
         $this->assertEquals($event, $params['event']);
         $this->assertTrue($notification->prepare_hook);
         $this->assertTrue($notification->granular_prepare_hook);
         $this->assertTrue($notification->format_hook);
         return true;
     });
     $this->setupServices();
     $this->notifications->registerMethod('test_method');
     $this->notifications->registerMethod('test_method2');
     $expected = [$to2->guid => ['test_method' => true], $to3->guid => ['test_method' => true]];
     $this->assertEquals($expected, notify_user([$to1->guid, $to2->guid, 0], $from->guid, $subject, $body));
     $this->assertEquals(2, $sent);
 }