/** * @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); }
/** * @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); }
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}}']]; }
/** * @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); }
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)); }