public function dont_test_it_ignores_invalid_events() { $events = array(EventMessage::record(new EventDouble('Event 1'), new EntityDTO('Entity', new Id(1))), 'event 2', EventMessage::record(new EventDouble('Event 3'), new EntityDTO('Entity', new Id(1)))); $Stream = new EventStream(); $Stream->load($events); $this->assertEquals(2, $Stream->count()); }
public function test_it_can_add_an_array_of_metadata() { $message = EventMessage::record(new EventDouble(1), new EntityDTO('Entity', new Id(1), 1)); $metadata = array('meta' => 'data', 'field' => 'value'); $message->addMetadata($metadata); $this->assertEquals($metadata, $message->getMetadata()); }
public static function fromEventMessage(EventMessage $message) { $event = new static(); $event->setId($message->getId()); $event->setEvent($message->getEvent()); $event->setEventType(get_class($message->getEvent())); $event->setEntityType($message->getEntity()->getType()); $event->setEntityId($message->getEntity()->getPlainId()); $event->setVersion($message->getEntity()->getVersion()); $event->setMetadata($message->getEnvelope()->getMetadata()); $event->setTime($message->getEnvelope()->getTime()); return $event; }
private function createFixtures($entity, $id) { $stream = new EventStream(); $stream->recordThat(EventMessage::record(new CreationEvent($id), new EntityDTO($entity, $id, 1))); $stream->recordThat(EventMessage::record(new ModificationEvent('new value'), new EntityDTO($entity, $id, 2))); $stream->recordThat(EventMessage::record(new ModificationEvent('last value'), new EntityDTO($entity, $id, 3))); $this->storage->saveStream($stream); }
public function loadStream(EntityDTO $entity) { $stream = new EventStream(); foreach ($this->getStoredData($entity) as $dto) { $stream->recordThat(EventMessage::fromEventDTO($dto)); } return $stream; }
private function prepare_stream_for_entity($entity, $eventCount) { $stream = new EventStream(); for ($i = 0; $i < $eventCount; $i++) { $event = $this->getEvent('Event_' . $i); $stream->recordThat(EventMessage::record($event, $entity)); } return $stream; }
/** * Apply and record an event * * @param Event $event * @return void * @author Francisco Iglesias Gómez */ protected function recordThat(Event $event) { if (!$this->canHandleEvent($event)) { return; } $this->apply($event); $this->initStream(); $this->events->recordThat(EventMessage::record($event, EntityDTO::fromEntity($this))); }