headless_cms-1.0.3/modules/headless_cms_notify/tests/src/Kernel/MessageDiscoveryTest.php

modules/headless_cms_notify/tests/src/Kernel/MessageDiscoveryTest.php
<?php

declare(strict_types=1);

namespace Drupal\Tests\headless_cms_notify\Kernel;

use Drupal\KernelTests\KernelTestBase;
use Drupal\headless_cms_notify\NotifyMessage\HeadlessNotifyCacheRebuildMessage;
use Drupal\headless_cms_notify\NotifyMessage\HeadlessNotifyEntityOperationMessage;
use Drupal\headless_cms_notify\NotifyMessage\HeadlessNotifyMessageDiscoveryService;
use Drupal\headless_cms_notify_test\NotifyMessage\HeadlessNotifyTestMessage;

/**
 * Tests message discovery.
 */
class MessageDiscoveryTest extends KernelTestBase {

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'consumers',
    'headless_cms',
    'headless_cms_notify',
  ];

  /**
   * Test message discovery.
   */
  public function testGetMessageTypes(): void {
    $discovery = $this->container->get(HeadlessNotifyMessageDiscoveryService::class);

    $types = $discovery->getMessageTypes();

    $this->assertCount(2, $types);

    $this->assertEquals(HeadlessNotifyEntityOperationMessage::class, $types[0]->className);
    $this->assertEquals('entity_operation', $types[0]->messageTypeId);
    $this->assertEquals('Entity Operation', $types[0]->messageTypeLabel);

    $this->assertEquals(HeadlessNotifyCacheRebuildMessage::class, $types[1]->className);
    $this->assertEquals('cache_rebuild', $types[1]->messageTypeId);
    $this->assertEquals('Cache Rebuild', $types[1]->messageTypeLabel);
  }

  /**
   * Test message discovery with additional module.
   */
  public function testGetMessageTypesAdditionalModule(): void {
    $this->enableModules(['headless_cms_notify_test']);
    $discovery = $this->container->get(HeadlessNotifyMessageDiscoveryService::class);

    $types = $discovery->getMessageTypes();

    $this->assertCount(3, $types);

    $this->assertEquals(HeadlessNotifyTestMessage::class, $types[2]->className);
    $this->assertEquals('headless_notify_test', $types[2]->messageTypeId);
    $this->assertEquals('Headless Notify Test', $types[2]->messageTypeLabel);
  }

  /**
   * Test message discovery cache.
   */
  public function testCache(): void {
    $discovery = $this->container->get(HeadlessNotifyMessageDiscoveryService::class);

    $uncached = $discovery->getMessageTypes();
    $cached = $discovery->getMessageTypes();

    $this->assertEquals($uncached, $cached);
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc