Exemple #1
0
 /**
  * @param Metadata $metadata
  * @return static
  */
 public function addMetadata(Metadata $metadata)
 {
     $metadata = $this->metadata->mergedWith($metadata);
     if ($metadata === $this->metadata) {
         return $this;
     }
     $message = clone $this;
     $message->metadata = $metadata;
     return $message;
 }
Exemple #2
0
 public function deserializeMetadata(VisitorInterface $visitor, $data, array $type, Context $context)
 {
     if (null === $data) {
         return null;
     }
     return Metadata::from($data);
 }
Exemple #3
0
 public function testReconstructUsingExistingData()
 {
     $metadata = Metadata::from(['foo' => 'bar']);
     $uuid = Uuid::uuid4();
     $message = new GenericMessage(new SomePayload(), $metadata, $uuid);
     $this->assertSame($uuid, $message->getId());
     $this->assertSame($metadata, $message->getMetadata());
 }
 public function testReconstructUsingExistingData()
 {
     $metadata = Metadata::from(['foo' => 'bar']);
     $id = Uuid::uuid4();
     $timestamp = DateTime::microsecondsNow();
     $eventMessage = new GenericEventMessage(new SomePayload(), $metadata, $id, $timestamp);
     $this->assertSame($timestamp, $eventMessage->getTimestamp());
     $this->assertSame($id, $eventMessage->getId());
     $this->assertSame($metadata, $eventMessage->getMetadata());
 }
 public function testFiltering()
 {
     $eventStore = new MemoryEventStore();
     $filteringEventStore = new FilteringEventStore($eventStore, new SomeEventFilter());
     $validEvent = new GenericEventMessage(new SomeEvent(), Metadata::from(['valid' => true]));
     $invalidEvent = new GenericEventMessage(new SomeEvent(), Metadata::from(['valid' => false]));
     $filteringEventStore->store($validEvent);
     $filteringEventStore->store($invalidEvent);
     $events = $eventStore->read();
     $this->assertContains($validEvent, $events);
     $this->assertNotContains($invalidEvent, $events);
 }
Exemple #6
0
 public function testIterate()
 {
     $metadata = Metadata::from(['foo' => 'bar', 'bar' => 'baz']);
     $data = [];
     foreach ($metadata as $key => $value) {
         $data[$key] = $value;
     }
     $this->assertSame(['bar' => 'baz', 'foo' => 'bar'], $data);
 }
Exemple #7
0
 public function testSerializeJson()
 {
     $metadata = Metadata::from(['foo' => 'bar', 'baz' => [1, 2, 3]]);
     $json = $this->serializer->serialize($metadata, 'json');
     $this->assertEquals('{"baz":[1,2,3],"foo":"bar"}', $json);
 }
Exemple #8
0
 /**
  * @param Metadata|array $additionalMetadata
  */
 public function setAdditionalMetadata($additionalMetadata)
 {
     $this->additionalMetadata = Metadata::from($additionalMetadata);
 }