/** * @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; }
public function deserializeMetadata(VisitorInterface $visitor, $data, array $type, Context $context) { if (null === $data) { return null; } return Metadata::from($data); }
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); }
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); }
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); }
/** * @param Metadata|array $additionalMetadata */ public function setAdditionalMetadata($additionalMetadata) { $this->additionalMetadata = Metadata::from($additionalMetadata); }