public function testTransformer() { $transformer = new DataTransformer(); $transformer->setCompressed(false)->setName('test_string')->setData('foo'); $this->assertSame('test_string', $transformer->getName()); $this->assertSame('foo', $transformer->getData()); $this->assertFalse($transformer->isCompressed()); $packed = $transformer->pack(); $this->assertTrue(is_string($packed)); $unpacked = $transformer->unpack($packed); $this->assertSame(DataHeader::T_STRING, $unpacked->getHeader()->getType()); $this->assertFalse($unpacked->getHeader()->isCompressed()); $this->assertTrue(is_string($unpacked->getData())); $transformer->setCompressed(true)->setName('test_array')->setData(['foo', 'bar']); $this->assertSame('test_array', $transformer->getName()); $this->assertTrue($transformer->isCompressed()); $packed = $transformer->pack(); $unpacked = $transformer->unpack($packed); $this->assertSame(DataHeader::T_ARRAY, $unpacked->getHeader()->getType()); $this->assertTrue(is_array($unpacked->getData())); $transformer->setCompressed(true)->setName('test_int')->setData(1); $packed = $transformer->pack(); $unpacked = $transformer->unpack($packed); $this->assertSame(DataHeader::T_INTEGER, $unpacked->getHeader()->getType()); $this->assertTrue(is_int($unpacked->getData())); $this->assertEquals($unpacked->getData(), 1); $transformer->setCompressed(true)->setName('test_double')->setData(2.2); $packed = $transformer->pack(); $unpacked = $transformer->unpack($packed); $this->assertSame(DataHeader::T_DOUBLE, $unpacked->getHeader()->getType()); $this->assertTrue(is_double($unpacked->getData())); $this->assertEquals($unpacked->getData(), 2.2); $transformer->setCompressed(true)->setName('test_bool')->setData(true); $packed = $transformer->pack(); $unpacked = $transformer->unpack($packed); $this->assertSame(DataHeader::T_BOOLEAN, $unpacked->getHeader()->getType()); $this->assertTrue(is_bool($unpacked->getData())); $this->assertEquals($unpacked->getData(), true); $transformer->setCompressed(true)->setName('test_bool')->setData(fopen('php://memory', 'r+')); try { $transformer->pack(); } catch (\PBergman\Bundle\BeanstalkBundle\Exception\TransformerException $e) { $this->assertRegExp('/Unsupported type given: "[^"]+"/', $e->getMessage()); } }
public function postDispatch(PostDispatchEvent $event) { if ($event->getResponse()->isSuccess()) { $event->getResponse()->setData(DataTransformer::unpack($event->getResponse()->getData())); } }