hook_event_dispatcher-8.x-2.04/modules/preprocess_event_dispatcher/tests/src/Kernel/PreprocessEventPassTest.php

modules/preprocess_event_dispatcher/tests/src/Kernel/PreprocessEventPassTest.php
<?php

namespace Drupal\Tests\preprocess_event_dispatcher\Kernel;

use Drupal\KernelTests\KernelTestBase;
use Drupal\preprocess_event_dispatcher\Event\HtmlPreprocessEvent;
use Drupal\preprocess_event_dispatcher\Event\PagePreprocessEvent;
use Drupal\Tests\preprocess_event_dispatcher\Unit\Helpers\FakePreprocessEvent;
use Drupal\Tests\preprocess_event_dispatcher\Unit\Helpers\FakePreprocessEventFactory;

/**
 * Class PreprocessEventPassTest.
 *
 * @group hook_event_dispatcher
 * @group preprocess_event_dispatcher
 */
class PreprocessEventPassTest extends KernelTestBase {

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'hook_event_dispatcher',
    'preprocess_event_dispatcher',
    'preprocess_event_dispatcher_test',
  ];

  /**
   * Test if we can overwrite a default factory.
   *
   * Using the preprocess_event_dispatcher_factory tag.
   *
   * @throws \Exception
   */
  public function testOverwritingDefaultFactory(): void {
    /** @var \Drupal\preprocess_event_dispatcher\Service\PreprocessEventFactoryMapper $mapper */
    $mapper = $this->container->get('preprocess_event.factory_mapper');
    $variables = [];

    $pageMappedFactory = $mapper->getFactory(PagePreprocessEvent::getHook());
    $this->assertInstanceOf(FakePreprocessEventFactory::class, $pageMappedFactory);
    $this->assertSame(PagePreprocessEvent::getHook(), $pageMappedFactory->getEventHook());
    $this->assertInstanceOf(FakePreprocessEvent::class, $pageMappedFactory->createEvent($variables));

    $htmlMappedFactory = $mapper->getFactory(HtmlPreprocessEvent::getHook());
    $this->assertInstanceOf(FakePreprocessEventFactory::class, $htmlMappedFactory);
    $this->assertSame(HtmlPreprocessEvent::getHook(), $htmlMappedFactory->getEventHook());
    $this->assertInstanceOf(FakePreprocessEvent::class, $htmlMappedFactory->createEvent($variables));
  }

}

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

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