Files
mail/tests/php/Unit/CompositionSavedEventTest.php
T
2026-08-18 21:57:38 -04:00

46 lines
1.5 KiB
PHP

<?php
declare(strict_types=1);
namespace KTXT\Mail\Tests\Unit;
use KTXF\Event\DeliveryMode;
use KTXF\Event\EventListenerRegistrarInterface;
use KTXM\Mail\CompositionSavedEvent;
use KTXM\Mail\CompositionSyncListener;
use KTXM\Mail\Module;
use PHPUnit\Framework\TestCase;
final class CompositionSavedEventTest extends TestCase {
public function testCarriesOnlySynchronizationCoordinates(): void {
$event = new CompositionSavedEvent('tenant-1', 'user-1', 'draft-1', 7);
$this->assertSame(CompositionSavedEvent::class, $event->label());
$this->assertSame('tenant-1', $event->tenantIdentifier());
$this->assertSame('user-1', $event->userIdentifier());
$this->assertSame('draft-1', $event->compositionIdentifier());
$this->assertSame(7, $event->revision());
$this->assertSame([
'userId' => 'user-1',
'compositionId' => 'draft-1',
'revision' => 7,
], $event->context());
}
public function testModuleRegistersDeferredCompositionSyncListener(): void {
$events = $this->createMock(EventListenerRegistrarInterface::class);
$events->expects($this->once())
->method('listen')
->with(
'mail',
CompositionSavedEvent::class,
CompositionSyncListener::class,
'onCompositionSaved',
DeliveryMode::Deferred,
);
(new Module($events))->boot();
}
}