. */ declare(strict_types=1); namespace SP\Tests\Core\Events; use Exception; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; use SP\Core\Events\Event; use SP\Core\Events\EventMessage; use SP\Domain\Core\Exceptions\InvalidClassException; use stdClass; /** * Class EventTest */ #[Group('unitary')] class EventTest extends TestCase { /** * @throws InvalidClassException */ public function testGetSource() { $object = (object)[1]; $event = new Event($object, EventMessage::build()); $out = $event->getSource(stdClass::class); $this->assertEquals($object, $out); } /** * @throws InvalidClassException */ public function testGetSourceWithException() { $object = (object)[1]; $event = new Event($object, EventMessage::build()); $this->expectException(InvalidClassException::class); $this->expectExceptionMessage('Source type mismatch'); $event->getSource(Exception::class); } public function testGetEventMessage() { $eventMessage = EventMessage::build()->addDescription('test'); $event = new Event($this, $eventMessage); $this->assertEquals($eventMessage, $event->getEventMessage()); } }