Esempio n. 1
0
 public function testClearRootsRecordedEvents()
 {
     $this->root->expects($this->once())->method('clearRecordedEvents');
     $this->aggregate->clearChanges();
 }
Esempio n. 2
0
 private function persistAggregate(Aggregate $aggregate)
 {
     if (empty($aggregate->getChanges())) {
         return;
     }
     $events = new EventCollection($aggregate->getChanges());
     $stream = $this->eventStore->openStream($aggregate->getContract(), EventStreamIdentifier::fromString($aggregate->getIdentifier()));
     foreach ($events as $event) {
         $stream->append($event);
     }
     $stream->commit();
     $this->eventEmitter->emit($events);
     $aggregate->clearChanges();
 }