/** * @test * @covers ::findById */ public function it_should_reconstitute_state_based_on_events() { $event = new Event('test', 1, []); $entryWithEvent = new EntryWithEvent(new Entry([]), $event); $expectedEntity = new \stdClass(); $this->streamNameGenerator->shouldReceive('generate')->andReturn('stream.id'); $this->eventStore->shouldReceive('forwardStreamFeedIterator')->andReturn([$entryWithEvent]); $this->eventSerializer->shouldReceive('unserialize')->with('test', [])->once()->andReturn($expectedEntity); $this->assertEquals(new AggregateMock(), $this->repository->findById('1')); }
/** * @param object|IsEventSourced $aggregateRoot * * @return array */ private function getWriteableEventsFromAggregate($aggregateRoot) { $domainEvents = $aggregateRoot->extractRecordedEvents(); $eventsArray = []; foreach ($domainEvents as $event) { $metadata = []; if ($this->metadataStore) { $metadata = $this->metadataStore->metadata($event); } $eventsArray[] = WritableEvent::newInstance(get_class($event), $this->eventSerializer->serialize($event), $metadata); } return $eventsArray; }