/**
  * @covers \PhpCqrs\Command\Dispatcher\Middleware\InMemoryMiddlewareChain::proceed
  * @covers \PhpCqrs\Command\Dispatcher\Middleware\InMemoryMiddlewareChain::next
  * @covers \PhpCqrs\Command\Dispatcher\Middleware\InMemoryMiddlewareChain::end
  */
 public function testCanProceedCommand()
 {
     $chain = new InMemoryMiddlewareChain();
     $chain->register(new ConcatenationMiddleware('2'), new ConcatenationMiddleware('3'));
     $message = GenericCommandMessage::forPayloadAndMetaData(new PublishBook('1234'), new MetaData(['string' => '1']));
     $message = $chain->proceed($message);
     $this->assertEquals('1.2.3', $message->metaData()->get('string'));
 }
 /**
  * @covers \PhpCqrs\Command\Message\GenericCommandMessage::forPayloadAndMetaData
  */
 public function testCanConstructForPayloadAndMetaData()
 {
     $message = GenericCommandMessage::forPayloadAndMetaData(new RegisterBook('1234', 'Title!'), new MetaData());
     $this->assertInstanceOf(GenericCommandMessage::class, $message);
 }