Files
server/tests/php/Unit/Event/EventTest.php
Sebastian 62b416f13e refactor: base event
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
2026-08-08 22:15:24 -04:00

45 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
namespace KTXT\Unit\Event;
use KTXF\Event\Event;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\Attributes\TestDox;
use PHPUnit\Framework\TestCase;
final class EventTest extends TestCase
{
#[Test]
#[TestDox('Event data and context are supplied during construction')]
public function constructsCompleteEventState(): void
{
$event = new Event(
'test.event',
['nested' => ['value' => 'original']],
'tenant-a',
'identity-a',
);
$copy = $event->context();
$copy['nested']['value'] = 'changed';
self::assertSame('original', $event->get('nested')['value']);
self::assertSame('test.event', $event->label());
self::assertNotSame('', $event->identifier());
self::assertGreaterThan(0, $event->timestamp());
self::assertSame('tenant-a', $event->tenantIdentifier());
self::assertSame('identity-a', $event->actorIdentity());
}
#[Test]
#[TestDox('Event data rejects mutable object references')]
public function rejectsMutablePayloadValues(): void
{
$this->expectException(\InvalidArgumentException::class);
new Event('test.event', ['mutable' => new \stdClass()]);
}
}