Example #1
0
 /**
  * @test
  */
 public function itIsTheSameAfterReconstitution()
 {
     $events = [];
     foreach ($this->basket->recordedEvents() as $event) {
         $events[] = $event;
     }
     $this->basket->eraseRecordedEvents();
     $history = new AggregateHistory($this->basket->aggregateId(), $events);
     $reconstitutedBasket = Basket::fromHistory($history);
     $this->assertEquals($this->basket, $reconstitutedBasket);
 }
Example #2
0
 /**
  * @param BasketId $basketId
  * @return Basket
  */
 public static function pickUp(BasketId $basketId)
 {
     $basket = new Basket();
     $basket->recordThat(new BasketWasPickedUp($basketId));
     return $basket;
 }
 /**
  * @test
  */
 public function itReconstitutesAnAggregateFromHistoryRetrievedFromTheEventStore()
 {
     $id = BasketId::fromString('some-basket');
     $eventStream = $this->testHelper->getEventStream($id);
     $aggregateHistory = $this->testHelper->getAggregateHistory($id);
     $aggregate = Basket::pickUp($id);
     $this->eventStore->expects($this->once())->method('read')->with($this->equalTo($id))->will($this->returnValue($eventStream));
     $this->eventWrapper->expects($this->once())->method('unwrap')->with($this->equalTo($eventStream))->will($this->returnValue($aggregateHistory));
     $this->aggregateFactory->expects($this->once())->method('reconstituteFromHistory')->with($this->equalTo($aggregateHistory))->will($this->returnValue($aggregate));
     $foundAggregate = $this->repository->get($id);
     $this->assertSame($aggregate, $foundAggregate);
 }