/** * Dequeues message * * @return Message */ public function dequeue() { $raw = $this->adapter->dequeue(); if (!$raw) { return false; } list($json, $identifier, $internals) = $raw; $json = $this->inputFilters->filter($json); $json = json_decode($json, true); $serialized = SerializedData::fromJson($json['data']); $serializer = $this->dataSerializers->getUnserializerFor($serialized); if (!$serializer) { throw (new RuntimeException('Unserializer not found'))->setContext($raw); } $json['data'] = $serializer->unserialize($serialized->getData()); $message = Message::fromArray($json); $message->setIdentifier($identifier); foreach ($internals as $key => $value) { $message->setInternal($key, $value); } return $message; }
/** * @test */ public function reverselyFiltersThroughAllFilters() { $input = 'chgvava fhhehhqra lyvfglxfra xvfng 2014lussutusta'; $filter1 = function ($str) { return str_rot13($str); }; $filter2 = function ($str) { return substr($str, 0, strlen($str) - 10); }; $filters = new InputFilters(); $filters->add($filter1)->add($filter2); $ret = $filters->filter($input); $expected = 'putinin suuruuden ylistyksen kisat 2014'; $this->assertEquals($expected, $ret); }