/** * @test */ public function itCanDeserializeToAnAssociativeArray() { $jsonString = new StringLiteral('{"key1":"value1","key2":{"key3":"value3"}}'); $actualArray = $this->assocDeserializer->deserialize($jsonString); $expectedArray = $this->createExpectedArray(); $this->assertEquals($expectedArray, $actualArray); }
/** * @param StringLiteral $json * @return ActorCreated */ public function deserialize(StringLiteral $json) { $json = parent::deserialize($json); if (!isset($json->actorId)) { throw new MissingValueException('actorId is missing'); } if (!isset($json->time)) { throw new MissingValueException('time is missing'); } if (!isset($json->author)) { throw new MissingValueException('author is missing'); } if (!isset($json->url)) { throw new MissingValueException('url is missing'); } return ActorCreated::deserialize((array) $json); }
/** * @inheritdoc */ public function deserialize(StringLiteral $data) { $data = parent::deserialize($data); $payloadClass = $this->payloadClass; return new DomainMessage($data['id'], $data['playhead'], Metadata::deserialize($data['metadata']), $payloadClass::deserialize($data['payload']), DateTime::fromString($data['recorded_on'])); }