Code Duplication    Length = 34-42 lines in 2 locations

Tests/Schema/DeferredTest.php 2 locations

@@ 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.