Example #1
0
 public function appendEvents($type, DomainEventStreamInterface $events)
 {
     while ($events->hasNext()) {
         $event = $events->next();
         IdentifierValidator::validateIdentifier($event->getAggregateIdentifier());
         $serializedPayload = $this->serializer->serializePayload($event);
         $serializedMetaData = $this->serializer->serializeMetaData($event);
         $this->entryStore->persistEvent($type, $event, $serializedPayload, $serializedMetaData, $this->entityManager);
     }
     $this->entityManager->flush();
 }
 public function readEvents($type, $identifier)
 {
     if (null !== $identifier) {
         IdentifierValidator::validateIdentifier($identifier);
     }
     if (null !== $this->aggregateIdentifier && $this->aggregateIdentifier !== $identifier) {
         throw new EventStoreException("You probably want to use aggregateIdentifier() on your fixture " . "to get the aggregate identifier to use");
     } else {
         if (null === $this->aggregateIdentifier) {
             $this->aggregateIdentifier = $identifier;
             $this->injectAggregateIdentifier();
         }
     }
     $allEvents = $this->givenEvents;
     $allEvents = array_merge($allEvents, $this->storedEvents);
     if (empty($allEvents)) {
         throw new AggregateNotFoundException($identifier, "No 'given' events were configured for this aggregate, " . "nor have any events been stored.");
     }
     return new SimpleDomainEventStream($allEvents);
 }