@@ -73,6 +73,50 @@ public function testDenormalizeOnNormalizer()
73
73
$ this ->assertTrue ($ this ->serializer ->denormalize (json_encode ($ data ), 'stdClass ' , 'json ' ));
74
74
}
75
75
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
+
76
120
public function testSerialize ()
77
121
{
78
122
$ this ->serializer = new Serializer (array (new GetSetMethodNormalizer ()), array ('json ' => new JsonEncoder ()));
0 commit comments