/** * @param string $topic * @param mixed $data * @return Message * @throws RuntimeException */ public function enqueue($topic, $data = null) { $serializer = $this->dataSerializers->getSerializerFor($data); if (!$serializer) { throw new RuntimeException("Serializer not found"); } $serializedData = new SerializedData($serializer->getIdentifier(), $serializer->serialize($data)); $message = Message::create($topic, $data); $arr = array('uuid' => $message->getUuid(), 'topic' => $message->getTopic(), 'data' => $serializedData->toJson()); $json = json_encode($arr); $json = $this->outputFilters->filter($json); try { $this->adapter->enqueue($json, $topic); return $message; } catch (\Exception $e) { throw new RuntimeException('Queuing a message failed', 0, $e); } }
/** * @test */ public function filtersThroughAllFilters() { $filter1 = function ($str) { return str_rot13($str); }; $filter2 = function ($str) { return $str . 'lussutusta'; }; $filters = new OutputFilters(); $filters->add($filter1)->add($filter2); $ret = $filters->filter('putinin suuruuden ylistyksen kisat 2014'); $expected = str_rot13('putinin suuruuden ylistyksen kisat 2014') . 'lussutusta'; $this->assertEquals($expected, $ret); }