Code Duplication    Length = 40-44 lines in 2 locations

Tests/Subscriber/PaginateElasticaQuerySubscriberTest.php 2 locations

@@ 201-240 (lines=40) @@
198
        ), $query->getParam('sort'));
199
    }
200
201
    public function testShouldAddNestedFilter()
202
    {
203
        $subscriber = new PaginateElasticaQuerySubscriber($this->getRequestStack(new Request(array('ord' => 'owner.name'))));
204
205
        $query = new Query();
206
        $adapter = $this->getAdapterMock();
207
        $adapter->method('getQuery')
208
            ->willReturn($query);
209
210
        $adapter->method('getResults')
211
            ->willReturn($this->getResultSetMock());
212
213
        $event = new ItemsEvent(0, 10);
214
        $event->target = $adapter;
215
        $event->options = array(
216
            'defaultSortFieldName' => 'createdAt',
217
            'sortFieldParameterName' => 'ord',
218
            'sortDirectionParameterName' => 'az',
219
            'sortNestedPath' => 'owner',
220
            'sortNestedFilter' => new Query\Term(array('enabled' => array('value' => true))),
221
        );
222
223
        $subscriber->items($event);
224
        $this->assertSame(array(
225
            'sort' => array(
226
                'owner.name' => array(
227
                    'order' => 'asc',
228
                    'nested_path' => 'owner',
229
                    'nested_filter' => array(
230
                        'term' => array(
231
                            'enabled' => array('value' => true),
232
                        ),
233
                    ),
234
                ),
235
            ),
236
            'query' => array(
237
                'match_all' => new \stdClass(),
238
            ),
239
        ), $query->toArray());
240
    }
241
242
    public function testShouldInvokeNestedFilterCallable()
243
    {
@@ 242-285 (lines=44) @@
239
        ), $query->toArray());
240
    }
241
242
    public function testShouldInvokeNestedFilterCallable()
243
    {
244
        $subscriber = new PaginateElasticaQuerySubscriber($this->getRequestStack(new Request(array('ord' => 'owner.name'))));
245
246
        $query = new Query();
247
        $adapter = $this->getAdapterMock();
248
        $adapter->method('getQuery')
249
            ->willReturn($query);
250
251
        $adapter->method('getResults')
252
            ->willReturn($this->getResultSetMock());
253
254
        $event = new ItemsEvent(0, 10);
255
        $event->target = $adapter;
256
        $event->options = array(
257
            'defaultSortFieldName' => 'createdAt',
258
            'sortFieldParameterName' => 'ord',
259
            'sortDirectionParameterName' => 'az',
260
            'sortNestedPath' => 'owner',
261
            'sortNestedFilter' => function ($sortField) {
262
                $this->assertSame('owner.name', $sortField);
263
264
                return new Query\Term(array('enabled' => array('value' => true)));
265
            },
266
        );
267
268
        $subscriber->items($event);
269
        $this->assertSame(array(
270
            'sort' => array(
271
                'owner.name' => array(
272
                    'order' => 'asc',
273
                    'nested_path' => 'owner',
274
                    'nested_filter' => array(
275
                        'term' => array(
276
                            'enabled' => array('value' => true),
277
                        ),
278
                    ),
279
                ),
280
            ),
281
            'query' => array(
282
                'match_all' => new \stdClass(),
283
            ),
284
        ), $query->toArray());
285
    }
286
287
    private function getRequestStack(Request $request = null)
288
    {