1414namespace ApiPlatform \Core \Tests \EventListener ;
1515
1616use ApiPlatform \Core \EventListener \SerializeListener ;
17+ use ApiPlatform \Core \Serializer \ResourceList ;
1718use ApiPlatform \Core \Serializer \SerializerContextBuilderInterface ;
1819use PHPUnit \Framework \TestCase ;
1920use Prophecy \Argument ;
@@ -105,11 +106,22 @@ public function testSerializeCollectionOperation()
105106 {
106107 $ expectedContext = ['request_uri ' => '' , 'resource_class ' => 'Foo ' , 'collection_operation_name ' => 'get ' ];
107108 $ serializerProphecy = $ this ->prophesize (SerializerInterface::class);
108- $ serializerProphecy ->serialize (Argument::any (), 'xml ' , Argument::that (function ($ context ) use ($ expectedContext ) {
109- unset($ context ['resources ' ]);
110109
111- return $ context === $ expectedContext ;
112- }))->willReturn ('bar ' )->shouldBeCalled ();
110+ $ serializerProphecy
111+ ->serialize (
112+ Argument::any (),
113+ 'xml ' ,
114+ Argument::allOf (
115+ Argument::that (function (array $ context ) {
116+ return $ context ['resources ' ] instanceof ResourceList;
117+ }),
118+ Argument::withEntry ('request_uri ' , '' ),
119+ Argument::withEntry ('resource_class ' , 'Foo ' ),
120+ Argument::withEntry ('collection_operation_name ' , 'get ' )
121+ )
122+ )
123+ ->willReturn ('bar ' )
124+ ->shouldBeCalled ();
113125
114126 $ request = new Request ([], [], ['_api_resource_class ' => 'Foo ' , '_api_collection_operation_name ' => 'get ' ]);
115127 $ request ->setRequestFormat ('xml ' );
@@ -130,11 +142,21 @@ public function testSerializeItemOperation()
130142 {
131143 $ expectedContext = ['request_uri ' => '' , 'resource_class ' => 'Foo ' , 'item_operation_name ' => 'get ' ];
132144 $ serializerProphecy = $ this ->prophesize (SerializerInterface::class);
133- $ serializerProphecy ->serialize (Argument::any (), 'xml ' , Argument::that (function ($ context ) use ($ expectedContext ) {
134- unset($ context ['resources ' ]);
135-
136- return $ context === $ expectedContext ;
137- }))->willReturn ('bar ' )->shouldBeCalled ();
145+ $ serializerProphecy
146+ ->serialize (
147+ Argument::any (),
148+ 'xml ' ,
149+ Argument::allOf (
150+ Argument::that (function (array $ context ) {
151+ return $ context ['resources ' ] instanceof ResourceList;
152+ }),
153+ Argument::withEntry ('request_uri ' , '' ),
154+ Argument::withEntry ('resource_class ' , 'Foo ' ),
155+ Argument::withEntry ('item_operation_name ' , 'get ' )
156+ )
157+ )
158+ ->willReturn ('bar ' )
159+ ->shouldBeCalled ();
138160
139161 $ request = new Request ([], [], ['_api_resource_class ' => 'Foo ' , '_api_item_operation_name ' => 'get ' ]);
140162 $ request ->setRequestFormat ('xml ' );
0 commit comments