1414use PHPUnit \Framework \TestCase ;
1515use Symfony \Bridge \Twig \Extension \SerializeExtension ;
1616use Symfony \Component \Serializer \Encoder \JsonEncoder ;
17+ use Symfony \Component \Serializer \Encoder \YamlEncoder ;
1718use Symfony \Component \Serializer \Normalizer \ObjectNormalizer ;
1819use Symfony \Component \Serializer \Serializer ;
1920use Twig \Environment ;
2425 */
2526class SerializerExtensionTest extends TestCase
2627{
27- public function testSerializer ()
28+ public function testSerializeDefaultsToJson ()
2829 {
2930 $ extension = new SerializeExtension (new Serializer ([new ObjectNormalizer ()], [new JsonEncoder ()]));
3031
@@ -40,4 +41,21 @@ public function testSerializer()
4041
4142 self ::assertSame ('{"title":"testing"} ' , $ result );
4243 }
44+
45+ public function testSerializeAcceptsFormat ()
46+ {
47+ $ extension = new SerializeExtension (new Serializer ([new ObjectNormalizer ()], [new JsonEncoder (), new YamlEncoder ()]));
48+
49+ $ object = new \stdClass ();
50+ $ object ->title = 'testing ' ;
51+
52+ $ template = '{{ object|serialize( \'yaml \') }} ' ;
53+
54+ $ twig = new Environment (new ArrayLoader (['template ' => $ template ]));
55+ $ twig ->addExtension ($ extension );
56+
57+ $ result = $ twig ->render ('template ' , ['object ' => $ object ]);
58+
59+ self ::assertSame ('{ title: testing } ' , $ result );
60+ }
4361}
0 commit comments