52afd35d6f
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
42 lines
1.1 KiB
PHP
42 lines
1.1 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->getData();
|
|
$copy['nested']['value'] = 'changed';
|
|
|
|
self::assertSame('original', $event->get('nested')['value']);
|
|
self::assertSame('tenant-a', $event->getTenantId());
|
|
self::assertSame('identity-a', $event->getIdentityId());
|
|
}
|
|
|
|
#[Test]
|
|
#[TestDox('Event data rejects mutable object references')]
|
|
public function rejectsMutablePayloadValues(): void
|
|
{
|
|
$this->expectException(\InvalidArgumentException::class);
|
|
|
|
new Event('test.event', ['mutable' => new \stdClass()]);
|
|
}
|
|
}
|