/** * @covers \PhpCqrs\Event\Listener\Exception\NoHandleMethodFound::forMessage */ public function testCanConstructFromDomainEventMessage() { $message = GenericDomainEventMessage::forPayload('1', 1, new BookPublished('1234')); $exception = NoHandleMethodFound::forMessage($message); $this->assertInstanceOf(NoHandleMethodFound::class, $exception); $this->assertSame('No handle method for event BookPublished.', $exception->getMessage()); }
/** * @param DomainEventMessage $message * @return void * @throws NoHandleMethodFound */ public function handle(DomainEventMessage $message) { $method = $this->method($message); if (!is_callable([$this, $method])) { throw NoHandleMethodFound::forMessage($message); } $this->{$method}($message->payload()); }