public function testSerialization()
    {
        $facade = new ShortcodeFacade();
        $s = new Shortcode('c', array(), null);
        $this->assertSame('[c /]', $facade->serializeToText($s));
        $this->assertSame('c', $facade->unserializeFromText('[c]')->getName());
        $this->assertSame('[c /]', $facade->serialize($s, 'text'));
        $this->assertSame('c', $facade->unserialize('[c]', 'text')->getName());
        $json = '{"name":"c","parameters":[],"content":null,"bbCode":null}';
        $this->assertSame($json, $facade->serializeToJson($s));
        $this->assertSame('c', $facade->unserializeFromJson($json)->getName());
        $this->assertSame($json, $facade->serialize($s, 'json'));
        $this->assertSame('c', $facade->unserialize($json, 'json')->getName());
        $yaml = <<<EOF
name: c
parameters: {  }
content: null
bbCode: null

EOF;
        $this->assertSame($yaml, $facade->serialize($s, 'yaml'));
        $this->assertSame('c', $facade->unserialize($yaml, 'yaml')->getName());
        $xml = <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<shortcode name="c">
  <bbCode/>
  <parameters/>
  <content/>
</shortcode>

EOF;
        $this->assertSame($xml, $facade->serialize($s, 'xml'));
        $this->assertSame('c', $facade->unserialize($xml, 'xml')->getName());
    }