14
14
namespace ApiPlatform \Core \Tests \EventListener ;
15
15
16
16
use ApiPlatform \Core \EventListener \SerializeListener ;
17
+ use ApiPlatform \Core \Serializer \ResourceList ;
17
18
use ApiPlatform \Core \Serializer \SerializerContextBuilderInterface ;
18
19
use PHPUnit \Framework \TestCase ;
19
20
use Prophecy \Argument ;
@@ -105,11 +106,22 @@ public function testSerializeCollectionOperation()
105
106
{
106
107
$ expectedContext = ['request_uri ' => '' , 'resource_class ' => 'Foo ' , 'collection_operation_name ' => 'get ' ];
107
108
$ serializerProphecy = $ this ->prophesize (SerializerInterface::class);
108
- $ serializerProphecy ->serialize (Argument::any (), 'xml ' , Argument::that (function ($ context ) use ($ expectedContext ) {
109
- unset($ context ['resources ' ]);
110
109
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 ();
113
125
114
126
$ request = new Request ([], [], ['_api_resource_class ' => 'Foo ' , '_api_collection_operation_name ' => 'get ' ]);
115
127
$ request ->setRequestFormat ('xml ' );
@@ -130,11 +142,21 @@ public function testSerializeItemOperation()
130
142
{
131
143
$ expectedContext = ['request_uri ' => '' , 'resource_class ' => 'Foo ' , 'item_operation_name ' => 'get ' ];
132
144
$ 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 ();
138
160
139
161
$ request = new Request ([], [], ['_api_resource_class ' => 'Foo ' , '_api_item_operation_name ' => 'get ' ]);
140
162
$ request ->setRequestFormat ('xml ' );
0 commit comments