示例#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
 /**
  * @test
  * @expectedException \Apha\EventStore\AggregateNotFoundException
  */
 public function getEventsForAggregateThrowsExceptionIfAggregateNotFound()
 {
     $eventBus = $this->getEventBus();
     $storage = $this->getEventStorage();
     $serializer = $this->getSerializer();
     $eventMap = $this->getEventMap();
     $aggregateId = Identity::createNew();
     $eventStore = new EventStore($eventBus, $storage, $serializer, $eventMap);
     $eventStore->getEventsForAggregate($aggregateId);
 }