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());
     }
 }