/**
  * Subscribe the given array of command handlers on the command bus
  * @param array $enrichers
  */
 public function subscribe($enrichers)
 {
     $enrichers = $this->isTraversable($enrichers) ? $enrichers : [$enrichers];
     foreach ($enrichers as $enricher) {
         $this->eventStreamDecorator->registerEnricher($enricher);
     }
 }
 /**
  * @test
  */
 public function it_calls_the_enricher_when_registered_later()
 {
     $constructorEnricher = new TracableMetadataEnricher();
     $newlyRegisteredEnricher = new TracableMetadataEnricher();
     $decorator = new MetadataEnrichingEventStreamDecorator(array($constructorEnricher));
     $decorator->registerEnricher($newlyRegisteredEnricher);
     $eventStream = $this->createDomainEventStream();
     $newEventStream = $decorator->decorateForWrite('id', 'type', $eventStream);
     $this->assertEquals(2, $constructorEnricher->callCount());
     $this->assertEquals(2, $newlyRegisteredEnricher->callCount());
 }