da81f1ddf1
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
61 lines
2.0 KiB
PHP
61 lines
2.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace KTXT\Unit\Module;
|
|
|
|
use KTXC\Console\Event\EventsDebugCommand;
|
|
use KTXC\Module\Module;
|
|
use KTXC\Service\FirewallService;
|
|
use KTXC\Service\SystemFirewallRuleService;
|
|
use KTXC\Service\TenantFirewallRuleService;
|
|
use KTXF\Event\DeliveryMode;
|
|
use KTXF\Event\EventListenerRegistry;
|
|
use KTXF\Event\SecurityEvent;
|
|
use PHPUnit\Framework\Attributes\Test;
|
|
use PHPUnit\Framework\Attributes\TestDox;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
final class CoreModuleTest extends TestCase
|
|
{
|
|
#[Test]
|
|
#[TestDox('Core boot registers owned listeners without resolving services')]
|
|
public function registersListeners(): void
|
|
{
|
|
$registry = new EventListenerRegistry();
|
|
$module = new Module($registry);
|
|
|
|
$module->boot();
|
|
$definitions = $registry->definitions();
|
|
|
|
self::assertCount(5, $definitions);
|
|
self::assertSame(['core'], array_values(array_unique(array_column($definitions, 'module'))));
|
|
self::assertSame(
|
|
FirewallService::class,
|
|
$registry->listeners(SecurityEvent::AUTH_FAILURE, DeliveryMode::Immediate)[0]->service,
|
|
);
|
|
self::assertFalse($registry->frozen());
|
|
}
|
|
|
|
#[Test]
|
|
#[TestDox('Core exposes the event registry debug command')]
|
|
public function exposesDebugCommand(): void
|
|
{
|
|
$module = new Module(new EventListenerRegistry());
|
|
|
|
self::assertContains(EventsDebugCommand::class, $module->registerCI());
|
|
}
|
|
|
|
#[Test]
|
|
#[TestDox('Core registers dedicated system firewall permissions')]
|
|
public function registersSystemFirewallPermissions(): void
|
|
{
|
|
$permissions = (new Module(new EventListenerRegistry()))->permissions();
|
|
|
|
self::assertArrayHasKey(SystemFirewallRuleService::PERMISSION_READ, $permissions);
|
|
self::assertArrayHasKey(SystemFirewallRuleService::PERMISSION_MANAGE, $permissions);
|
|
self::assertArrayHasKey(TenantFirewallRuleService::PERMISSION_READ, $permissions);
|
|
self::assertArrayHasKey(TenantFirewallRuleService::PERMISSION_MANAGE, $permissions);
|
|
}
|
|
}
|