/**
  * @covers Governor\Framework\Domain\GenericDomainEventMessage::withMetaData
  */
 public function testWithMetaData()
 {
     $payload = new Payload();
     $seqNo = 0;
     $id = Uuid::uuid1();
     $metaData = new MetaData(['key' => 'value']);
     $message = new GenericDomainEventMessage($id, $seqNo, $payload, $metaData);
     $message1 = $message->withMetaData();
     $message2 = $message->withMetaData(['key' => 'otherValue']);
     $this->assertEquals(0, $message1->getMetaData()->count());
     $this->assertEquals(1, $message2->getMetaData()->count());
     $this->assertEquals($message->getTimestamp(), $message1->getTimestamp());
     $this->assertEquals($message->getTimestamp(), $message2->getTimestamp());
     $this->assertEquals($message->getIdentifier(), $message1->getIdentifier());
     $this->assertEquals($message->getIdentifier(), $message2->getIdentifier());
     $this->assertInstanceOf(GenericDomainEventMessage::class, $message1);
     $this->assertInstanceOf(GenericDomainEventMessage::class, $message2);
 }