PathEventTest.php in Hook Event Dispatcher 8
File
tests/src/Unit/Path/PathEventTest.php
View source
<?php
namespace Drupal\Tests\hook_event_dispatcher\Unit\Path;
use Drupal;
use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\hook_event_dispatcher\HookEventDispatcherInterface;
use Drupal\Tests\hook_event_dispatcher\Unit\HookEventDispatcherManagerSpy;
use Drupal\Tests\UnitTestCase;
class PathEventTest extends UnitTestCase {
private $manager;
public function setUp() {
$builder = new ContainerBuilder();
$this->manager = new HookEventDispatcherManagerSpy();
$builder
->set('hook_event_dispatcher.manager', $this->manager);
$builder
->compile();
Drupal::setContainer($builder);
}
public function testPathDeleteEvent() {
$source = 'testSource';
$alias = 'testAlias';
$langcode = 'NL';
$pid = 1337;
$path = [
'source' => $source,
'alias' => $alias,
'langcode' => $langcode,
'pid' => $pid,
'redirect' => TRUE,
];
hook_event_dispatcher_path_delete($path);
$event = $this->manager
->getRegisteredEvent(HookEventDispatcherInterface::PATH_DELETE);
self::assertEquals($source, $event
->getSource());
self::assertEquals($alias, $event
->getAlias());
self::assertEquals($langcode, $event
->getLangcode());
self::assertEquals($pid, $event
->getPid());
self::assertTrue($event
->isRedirect());
}
public function testPathInsertEvent() {
$source = 'testSource';
$alias = 'testAlias';
$langcode = 'NL';
$pid = 1337;
$path = [
'source' => $source,
'alias' => $alias,
'langcode' => $langcode,
'pid' => $pid,
];
hook_event_dispatcher_path_insert($path);
$event = $this->manager
->getRegisteredEvent(HookEventDispatcherInterface::PATH_INSERT);
self::assertEquals($source, $event
->getSource());
self::assertEquals($alias, $event
->getAlias());
self::assertEquals($langcode, $event
->getLangcode());
self::assertEquals($pid, $event
->getPid());
}
public function testPathUpdateEvent() {
$source = 'testSource';
$alias = 'testAlias';
$langcode = 'NL';
$pid = 1337;
$path = [
'source' => $source,
'alias' => $alias,
'langcode' => $langcode,
'pid' => $pid,
];
hook_event_dispatcher_path_update($path);
$event = $this->manager
->getRegisteredEvent(HookEventDispatcherInterface::PATH_UPDATE);
self::assertEquals($source, $event
->getSource());
self::assertEquals($alias, $event
->getAlias());
self::assertEquals($langcode, $event
->getLangcode());
self::assertEquals($pid, $event
->getPid());
}
public function testWithEmptyPath() {
$this->manager
->setMaxEventCount(0);
hook_event_dispatcher_path_delete([]);
hook_event_dispatcher_path_insert([]);
hook_event_dispatcher_path_update([]);
self::assertTrue(TRUE);
}
}