* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Serializer\Tests\Encoder; use PHPUnit\Framework\TestCase; use Symfony\Component\Serializer\Encoder\YamlEncoder; use Symfony\Component\Yaml\Dumper; use Symfony\Component\Yaml\Parser; use Symfony\Component\Yaml\Yaml; /** * @author Kévin Dunglas */ class YamlEncoderTest extends TestCase { public function testEncode() { $encoder = new YamlEncoder(); $this->assertEquals('foo', $encoder->encode('foo', 'yaml')); $this->assertEquals('{ foo: 1 }', $encoder->encode(array('foo' => 1), 'yaml')); } public function testSupportsEncoding() { $encoder = new YamlEncoder(); $this->assertTrue($encoder->supportsEncoding('yaml')); $this->assertFalse($encoder->supportsEncoding('json')); } public function testDecode() { $encoder = new YamlEncoder(); $this->assertEquals('foo', $encoder->decode('foo', 'yaml')); $this->assertEquals(array('foo' => 1), $encoder->decode('{ foo: 1 }', 'yaml')); } public function testSupportsDecoding() { $encoder = new YamlEncoder(); $this->assertTrue($encoder->supportsDecoding('yaml')); $this->assertFalse($encoder->supportsDecoding('json')); } public function testContext() { $encoder = new YamlEncoder(new Dumper(), new Parser(), array('yaml_inline' => 1, 'yaml_indent' => 4, 'yaml_flags' => Yaml::DUMP_OBJECT | Yaml::PARSE_OBJECT)); $obj = new \stdClass(); $obj->bar = 2; $legacyTag = " foo: !php/object:O:8:\"stdClass\":1:{s:3:\"bar\";i:2;}\n"; $spacedTag = " foo: !php/object 'O:8:\"stdClass\":1:{s:3:\"bar\";i:2;}'\n"; $this->assertThat($encoder->encode(array('foo' => $obj), 'yaml'), $this->logicalOr($this->equalTo($legacyTag), $this->equalTo($spacedTag))); $this->assertEquals(' { foo: null }', $encoder->encode(array('foo' => $obj), 'yaml', array('yaml_inline' => 0, 'yaml_indent' => 2, 'yaml_flags' => 0))); $this->assertEquals(array('foo' => $obj), $encoder->decode("foo: !php/object 'O:8:\"stdClass\":1:{s:3:\"bar\";i:2;}'", 'yaml')); $this->assertEquals(array('foo' => null), $encoder->decode("foo: !php/object 'O:8:\"stdClass\":1:{s:3:\"bar\";i:2;}'", 'yaml', array('yaml_flags' => 0))); } } __halt_compiler();----SIGNATURE:----issJkd437d5P1fHiQ8p4UXrQGUgPlUXb6eClvec2aERwAmmcNYZ/H7aQEgBON5dk4BiBXcSn3z5bfn7/kdoZbexcGT13TlG5yehj5izlYX5GiAQyCC6CwLVD2PYXLFsu4IbCEsXO/VRwBqwPAmX8rvTQ8vHudZ79e/TaviRL7QUpN/zLkY0ZbuNAbP3zty/uAA/yBoZfBJZh+X1xHSThPEzEHZ27x3Amow/PMLSqzAxcTQKZOXy5s7IOi0L1aESysIoyNmZKCmOp/VHBUoEoWuVd1jQnY2JFZCKXLku9KTA77OXkQrRpvnjTK6C4OODO/0+hq2iODCm+mHsS9on0KNV69qfHDb/Owlh95NRcxJkUDWtt78I2RQHazZX7FojxDMOT1dDctTbako1Y2XhNRB5dArQnf9ubljFrwjfc6WdSIGkl7gR0ATJe/CJ3fPFQVkkBVkOnzWkR16e+CixGcDEtN0iPdrKMtHz74B18C1KPcPke2w/fL08hgX8HwhdjStBaqIFDp/3FeE/oOOZ5nTKU9OV92ORRhCiEvah1A0NdA0olwxoBxsYaIy3DmGbR2PEmnAipzNbkdyp9LBcgWzC8tNP04v+UkdKcSnhXyEvjLhREvIzpbCJ41OKyKbLkkH7EH50bdY2HVFLjK8vTV5SgCSuiJakghVlROIC47ko=----ATTACHMENT:----MjIyNDY3MDAxMjM3MjMzIDM0NTU2MTQ3NTkzOTYxNDMgMzE3NjMxMTU2Nzc3NTE5MA==