@@ -73,6 +73,50 @@ public function testDenormalizeOnNormalizer()
7373$ this ->assertTrue ($ this ->serializer ->denormalize (json_encode ($ data ),'stdClass ' ,'json ' ));
7474 }
7575
76+ public function testNormalizeWithSupportOnData ()
77+ {
78+ $ normalizer1 =$ this ->getMock ('Symfony\Component\Serializer\Normalizer\NormalizerInterface ' );
79+ $ normalizer1 ->method ('supportsNormalization ' )
80+ ->willReturnCallback (function ($ data ,$ format ) {
81+ return isset ($ data ->test );
82+ });
83+ $ normalizer1 ->method ('normalize ' )->willReturn ('test1 ' );
84+
85+ $ normalizer2 =$ this ->getMock ('Symfony\Component\Serializer\Normalizer\NormalizerInterface ' );
86+ $ normalizer2 ->method ('supportsNormalization ' )
87+ ->willReturn (true );
88+ $ normalizer2 ->method ('normalize ' )->willReturn ('test2 ' );
89+
90+ $ serializer =new Serializer (array ($ normalizer1 ,$ normalizer2 ));
91+
92+ $ data =new \stdClass ();
93+ $ data ->test =true ;
94+ $ this ->assertEquals ('test1 ' ,$ serializer ->normalize ($ data ));
95+
96+ $ this ->assertEquals ('test2 ' ,$ serializer ->normalize (new \stdClass ()));
97+ }
98+
99+ public function testDenormalizeWithSupportOnData ()
100+ {
101+ $ denormalizer1 =$ this ->getMock ('Symfony\Component\Serializer\Normalizer\DenormalizerInterface ' );
102+ $ denormalizer1 ->method ('supportsDenormalization ' )
103+ ->willReturnCallback (function ($ data ,$ type ,$ format ) {
104+ return isset ($ data ['test1 ' ]);
105+ });
106+ $ denormalizer1 ->method ('denormalize ' )->willReturn ('test1 ' );
107+
108+ $ denormalizer2 =$ this ->getMock ('Symfony\Component\Serializer\Normalizer\DenormalizerInterface ' );
109+ $ denormalizer2 ->method ('supportsDenormalization ' )
110+ ->willReturn (true );
111+ $ denormalizer2 ->method ('denormalize ' )->willReturn ('test2 ' );
112+
113+ $ serializer =new Serializer (array ($ denormalizer1 ,$ denormalizer2 ));
114+
115+ $ this ->assertEquals ('test1 ' ,$ serializer ->denormalize (array ('test1 ' =>true ),'test ' ));
116+
117+ $ this ->assertEquals ('test2 ' ,$ serializer ->denormalize (array (),'test ' ));
118+ }
119+
76120public function testSerialize ()
77121 {
78122$ this ->serializer =new Serializer (array (new GetSetMethodNormalizer ()),array ('json ' =>new JsonEncoder ()));