/**
  * @test
  */
 public function itCommitsTheRecordedEventsOfAnAggregateInTheEventStore()
 {
     $id = BasketId::fromString('some-basket');
     $domainEvents = $this->testHelper->getDomainEvents($id);
     $eventStream = $this->testHelper->getEventStream($id);
     $aggregate = $this->testHelper->mockAggregate($id);
     $aggregate->expects($this->once())->method('hasRecordedEvents')->will($this->returnValue(true));
     $aggregate->expects($this->once())->method('recordedEvents')->will($this->returnValue($domainEvents));
     $aggregate->expects($this->once())->method('eraseRecordedEvents');
     $this->eventWrapper->expects($this->once())->method('wrap')->with($this->equalTo($id), $this->equalTo($domainEvents))->will($this->returnValue($eventStream));
     $this->eventStore->expects($this->once())->method('commit')->with($this->equalTo($eventStream));
     $this->repository->add($aggregate);
 }
Exemplo n.º 2
0
 /**
  * @test
  */
 public function itMaintainsConsecutivePlayheadAfterUnwrapping()
 {
     $id = BasketId::fromString('some-id');
     $domainEvents = $this->testHelper->getDomainEvents($id);
     $eventStream = $this->testHelper->getEventStream($id);
     $this->eventWrapper->unwrap($eventStream);
     $newEnvelopeStream = $this->eventWrapper->wrap($id, $domainEvents);
     /** @var EnvelopsEvent[] $envelopes */
     $envelopes = iterator_to_array($newEnvelopeStream);
     $this->assertSame(3, $envelopes[0]->aggregateVersion());
     $this->assertSame(4, $envelopes[1]->aggregateVersion());
     $this->assertSame(5, $envelopes[2]->aggregateVersion());
 }