@@ 209-242 (lines=34) @@ | ||
206 | /** |
|
207 | * Test a simple single deferred field. |
|
208 | */ |
|
209 | public function testSingleResolve() |
|
210 | { |
|
211 | $query = 'query { |
|
212 | users(ids: ["a", "b"]) { |
|
213 | name |
|
214 | } |
|
215 | }'; |
|
216 | $database = $this->prophesize(DeferredDatabase::class); |
|
217 | ||
218 | $database->query(['a', 'b'])->willReturn( |
|
219 | [ |
|
220 | 'a' => ['id' => 'a', 'name' => 'User A'], |
|
221 | 'b' => ['id' => 'b', 'name' => 'User B'], |
|
222 | ] |
|
223 | )->shouldBeCalledTimes(1); |
|
224 | ||
225 | $result = $this->query( |
|
226 | $query, |
|
227 | new DeferredQueryBuffer($database->reveal()) |
|
228 | ); |
|
229 | ||
230 | $database->checkProphecyMethodsPredictions(); |
|
231 | ||
232 | $this->assertEquals( |
|
233 | [ |
|
234 | 'users' => [ |
|
235 | ['name' => 'User A'], |
|
236 | ['name' => 'User B'], |
|
237 | ], |
|
238 | ], |
|
239 | $result['data'], |
|
240 | 'Retrieved correct data.' |
|
241 | ); |
|
242 | } |
|
243 | ||
244 | /** |
|
245 | * Test if multiple calls to the same field result in a single query. |
|
@@ 247-288 (lines=42) @@ | ||
244 | /** |
|
245 | * Test if multiple calls to the same field result in a single query. |
|
246 | */ |
|
247 | public function testMultiResolve() |
|
248 | { |
|
249 | ||
250 | $query = 'query { |
|
251 | a:users(ids: ["a"]) { |
|
252 | name |
|
253 | } |
|
254 | b:users(ids: ["b"]) { |
|
255 | name |
|
256 | } |
|
257 | }'; |
|
258 | ||
259 | $database = $this->prophesize(DeferredDatabase::class); |
|
260 | ||
261 | $database->query(['a', 'b'])->willReturn( |
|
262 | [ |
|
263 | 'a' => ['id' => 'a', 'name' => 'User A'], |
|
264 | 'b' => ['id' => 'b', 'name' => 'User B'], |
|
265 | ] |
|
266 | )->shouldBeCalledTimes(1); |
|
267 | ||
268 | $result = $this->query( |
|
269 | $query, |
|
270 | new DeferredQueryBuffer($database->reveal()) |
|
271 | ); |
|
272 | ||
273 | $database->checkProphecyMethodsPredictions(); |
|
274 | ||
275 | $this->assertEquals( |
|
276 | [ |
|
277 | 'a' => [ |
|
278 | ['name' => 'User A'], |
|
279 | ], |
|
280 | 'b' => [ |
|
281 | ['name' => 'User B'], |
|
282 | ], |
|
283 | ], |
|
284 | $result['data'], |
|
285 | 'Retrieved correct data.' |
|
286 | ); |
|
287 | ||
288 | } |
|
289 | ||
290 | /** |
|
291 | * Test if recursive deferred resolvers work properly. |