Пример #1
0
 /**
  * @param Identity $aggregateId
  * @param int $version
  */
 public function playToVersion(Identity $aggregateId, int $version)
 {
     $events = $this->eventStore->getEventsForAggregate($aggregateId);
     $partialHistory = [];
     /* @var $event \Apha\Message\Event */
     foreach ($events->getIterator() as $event) {
         if ($event->getVersion() > $version) {
             break;
         }
         $partialHistory[] = $event;
     }
     $this->eventPlayer->play(new Events($partialHistory));
 }
Пример #2
0
 /**
  * @param Identity $aggregateIdentity
  * @return AggregateRoot
  */
 public function findById(Identity $aggregateIdentity) : AggregateRoot
 {
     $events = $this->eventStore->getEventsForAggregate($aggregateIdentity);
     return $this->factory->createAggregate($aggregateIdentity, $events);
 }
Пример #3
0
 /**
  * @param EventBus $eventBus
  * @param EventStorage $storage
  * @param Serializer $serializer
  * @param EventClassMap $eventMap
  */
 public function __construct(EventBus $eventBus, EventStorage $storage, Serializer $serializer, EventClassMap $eventMap)
 {
     $this->eventBus = new TraceableEventBus($eventBus);
     parent::__construct($this->eventBus, $storage, $serializer, $eventMap);
 }
Пример #4
0
 /**
  * @test
  */
 public function getAggregateIdsRetrievesIdentitiesFromStorage()
 {
     $eventBus = $this->getEventBus();
     $storage = $this->getEventStorage();
     $serializer = $this->getSerializer();
     $eventMap = $this->getEventMap();
     $ids = ['fb1f37b1-e508-45c7-a564-89790aafcdd7', 'ab1f37b1-e508-45c7-a564-89790aafcdd7'];
     $storage->expects(self::once())->method('findIdentities')->willReturn($ids);
     $eventStore = new EventStore($eventBus, $storage, $serializer, $eventMap);
     $identities = $eventStore->getAggregateIds();
     self::assertCount(count($ids), $identities);
 }