/**
  * @covers \PhpCqrs\Domain\Message\GenericDomainMessage::__construct
  * @covers \PhpCqrs\Domain\Message\GenericDomainMessage::payload
  * @covers \PhpCqrs\Domain\Message\GenericDomainMessage::type
  * @covers \PhpCqrs\Domain\Message\GenericDomainMessage::metaData
  */
 public function testCanConstruct()
 {
     $payload = new PublishBook('1234', 'Title!');
     $type = new ClassNamePayloadType($payload);
     $metaData = new MetaData();
     $message = new GenericDomainMessage($payload, $type, $metaData);
     $this->assertSame($payload, $message->payload());
     $this->assertSame($type, $message->type());
     $this->assertSame($metaData, $message->metaData());
     $this->assertInstanceOf(PayloadType::class, $message->type());
 }
 /**
  * @param string      $aggregateId
  * @param int         $sequence
  * @param DateTime    $occurredOn
  * @param Payload     $payload
  * @param PayloadType $type
  * @param MetaData    $metaData
  */
 public function __construct($aggregateId, $sequence, DateTime $occurredOn, Payload $payload, PayloadType $type, MetaData $metaData)
 {
     parent::__construct($payload, $type, $metaData);
     $this->aggregateId = (string) $aggregateId;
     $this->sequence = (int) $sequence;
     $this->occurredOn = $occurredOn;
 }
 /**
  * @param Payload     $payload
  * @param PayloadType $type
  * @param MetaData    $metaData
  */
 public function __construct(Payload $payload, PayloadType $type, MetaData $metaData)
 {
     parent::__construct($payload, $type, $metaData);
 }