14
14
use PHPUnit \Framework \TestCase ;
15
15
use Symfony \Bridge \Twig \Extension \SerializeExtension ;
16
16
use Symfony \Component \Serializer \Encoder \JsonEncoder ;
17
+ use Symfony \Component \Serializer \Encoder \YamlEncoder ;
17
18
use Symfony \Component \Serializer \Normalizer \ObjectNormalizer ;
18
19
use Symfony \Component \Serializer \Serializer ;
19
20
use Twig \Environment ;
24
25
*/
25
26
class SerializerExtensionTest extends TestCase
26
27
{
27
- public function testSerializer ()
28
+ public function testSerializeDefaultsToJson ()
28
29
{
29
30
$ extension = new SerializeExtension (new Serializer ([new ObjectNormalizer ()], [new JsonEncoder ()]));
30
31
@@ -40,4 +41,21 @@ public function testSerializer()
40
41
41
42
self ::assertSame ('{"title":"testing"} ' , $ result );
42
43
}
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
+ }
43
61
}
0 commit comments