/**
  * @test
  */
 public function it_can_publish_the_message_on_the_event_bus()
 {
     $context = [];
     $context['correlation_id'] = 'my-correlation-id-123';
     $expectedMetadata = new Metadata($context);
     $expectedPayload = '';
     $this->eventBus->expects($this->once())->method('publish')->with($this->callback(function ($domainEventStream) use($expectedMetadata, $expectedPayload) {
         /** @var DomainEventStream $domainEventStream */
         $iterator = $domainEventStream->getIterator();
         $domainMessage = $iterator->offsetGet(0);
         $actualMetadata = $domainMessage->getMetadata();
         $actualPayload = $domainMessage->getPayload();
         if ($actualMetadata == $expectedMetadata && $actualPayload == $expectedPayload) {
             return true;
         } else {
             return false;
         }
     }));
     $this->deserializerLocator->expects($this->once())->method('getDeserializerForContentType')->with(new StringLiteral('application/vnd.cultuurnet.udb3-events.dummy-event+json'))->willReturn($this->deserializer);
     $this->deserializer->expects($this->once())->method('deserialize')->with(new StringLiteral(''))->willReturn('');
     $this->channel->expects($this->once())->method('basic_ack')->with('my-delivery-tag');
     $messageProperties = ['content_type' => 'application/vnd.cultuurnet.udb3-events.dummy-event+json', 'correlation_id' => 'my-correlation-id-123'];
     $messageBody = '';
     $message = new AMQPMessage($messageBody, $messageProperties);
     $message->delivery_info['channel'] = $this->channel;
     $message->delivery_info['delivery_tag'] = 'my-delivery-tag';
     $this->eventBusForwardingConsumer->consume($message);
 }