Ejemplo n.º 1
0
 /**
  * @param array $data
  * @return GenericDomainEventMessage|GenericEventMessage
  */
 public function fromArray(array $data)
 {
     $payload = $this->serializer->deserialize(json_encode($data['payload']), $data['payloadType']);
     /** @var Metadata $metadata */
     $metadata = $this->serializer->deserialize(json_encode($data['metadata']), Metadata::class);
     $id = Uuid::fromString($data['id']);
     $timestamp = DateTime::fromString("{$data['timestamp']}");
     if (array_key_exists('aggregateType', $data)) {
         return new GenericDomainEventMessage($data['aggregateType'], $data['aggregateId'], 0, $payload, $metadata, $id, $timestamp);
     }
     return new GenericEventMessage($data['payload'], $data['metadata'], $id, $timestamp);
 }
Ejemplo n.º 2
0
 /**
  * @param SerializerInterface $serializer
  * @return GenericDomainEventMessage|GenericEventMessage
  */
 public function toMessage(SerializerInterface $serializer)
 {
     $data = $this->toArray();
     $id = Uuid::fromString($data['id']);
     $timestamp = DateTime::fromString($data['timestamp']);
     $payload = $serializer->deserialize($data['payload'], $data['payload_type']);
     $metadata = $serializer->deserialize($data['metadata'], Metadata::class);
     if (array_key_exists('aggregate', $data)) {
         return new GenericDomainEventMessage($data['aggregate']['type'], $data['aggregate']['id'], $data['aggregate']['seq'], $payload, $metadata, $id, $timestamp);
     }
     return new GenericEventMessage($payload, $metadata, $id, $timestamp);
 }
 public function testGetAll()
 {
     $timestamp = DateTime::fromString('2016-01-26T16:25:32.225809+00:00');
     $messages = [];
     for ($i = 0; $i < 15; $i++) {
         $eventId = Uuid::fromString('4e95d633-7ffb-448e-8925-2d02996057a' . dechex($i));
         $messages[] = new GenericEventMessage(null, null, $eventId, $timestamp);
     }
     $eventStore = $this->createMock('CQRS\\EventStore\\EventStoreInterface');
     $eventStore->expects($this->once())->method('iterate')->willReturn($messages);
     $this->getApplicationServiceLocator()->setService('cqrs.event_store.cqrs_default', $eventStore);
     $this->dispatch('/cqrs/notifications');
     $this->assertResponseStatusCode(200);
     $this->assertModuleName('CQRSModule');
     $this->assertControllerName('CQRSModule\\Controller\\NotificationController');
     $this->assertControllerClass('NotificationController');
     $this->assertMatchedRouteName('cqrs/notifications');
     $result = json_decode($this->getResponse()->getContent(), true);
     $events = array_map(function ($i) {
         return ['id' => '4e95d633-7ffb-448e-8925-2d02996057a' . $i, 'payloadType' => 'CQRS\\Domain\\Message\\GenericMessage', 'payload' => null, 'metadata' => [], 'timestamp' => '2016-01-26T16:25:32.225809+00:00'];
     }, range(0, 9));
     $this->assertEquals(['_links' => ['self' => '/cqrs/notifications', 'next' => '/cqrs/notifications?previousEventId=4e95d633-7ffb-448e-8925-2d02996057a9'], 'count' => 10, '_embedded' => ['event' => $events]], $result);
 }
Ejemplo n.º 4
0
 public function getData()
 {
     $aggregateId = 123;
     return [[new GenericEventMessage(new SomeEvent(), null, Uuid::fromString('777bb61d-b9fa-4023-937e-1b6e4fc9f7b4'), DateTime::fromString('2015-02-11T15:23:42.195819+0100')), '{"id":"777bb61d-b9fa-4023-937e-1b6e4fc9f7b4","timestamp":"2015-02-11T15:23:42.195819+01:00","payload_type":"CQRSTest\\\\EventStore\\\\SomeEvent","payload":"{}","metadata":"{}"}'], [new GenericDomainEventMessage('SomeAggregate', $aggregateId, 4, new SomeEvent(), null, Uuid::fromString('eabd641e-4181-4b5f-b191-ecdd40d82b1b'), DateTime::fromString('2015-02-11T13:40:29.658819+0100')), '{"id":"eabd641e-4181-4b5f-b191-ecdd40d82b1b","timestamp":"2015-02-11T13:40:29.658819+01:00","payload_type":"CQRSTest\\\\EventStore\\\\SomeEvent","payload":"{}","metadata":"{}","aggregate":{"type":"SomeAggregate","id":123,"seq":4}}']];
 }
Ejemplo n.º 5
0
 /**
  * @param array $data
  * @return GenericDomainEventMessage|GenericEventMessage
  */
 public function fromArray(array $data)
 {
     $payload = $this->serializer->deserialize($data['payload'], $data['payload_type']);
     /** @var Metadata $metadata */
     $metadata = $this->serializer->deserialize($data['metadata'], Metadata::class);
     $id = Uuid::fromString($data['event_id']);
     $timestamp = DateTime::fromString("{$data['event_date']}.{$data['event_date_u']}");
     if (array_key_exists('aggregate_type', $data)) {
         return new GenericDomainEventMessage($data['aggregate_type'], $data['aggregate_id'], $data['sequence_number'], $payload, $metadata, $id, $timestamp);
     }
     return new GenericEventMessage($payload, $metadata, $id, $timestamp);
 }
Ejemplo n.º 6
0
 public function testToString()
 {
     $dateTime = DateTime::fromString('2016-05-12 22:37:46.123456-05:00');
     self::assertEquals('2016-05-12T22:37:46.123456-05:00', $dateTime->toString());
     self::assertEquals('2016-05-12T22:37:46.123456-05:00', sprintf('%s', $dateTime));
 }