コード例 #1
0
 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());
 }
コード例 #2
0
 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());
 }
コード例 #3
0
ファイル: EventDTO.php プロジェクト: franiglesias/milhojas
 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;
 }
コード例 #4
0
 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);
 }
コード例 #5
0
 public function loadStream(EntityDTO $entity)
 {
     $stream = new EventStream();
     foreach ($this->getStoredData($entity) as $dto) {
         $stream->recordThat(EventMessage::fromEventDTO($dto));
     }
     return $stream;
 }
コード例 #6
0
 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;
 }
コード例 #7
0
 /**
  * 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)));
 }