/**
  * @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());
 }