@@ 135-165 (lines=31) @@ | ||
132 | $subscriber->items($event); |
|
133 | } |
|
134 | ||
135 | public function testShouldAddNestedPath() |
|
136 | { |
|
137 | $subscriber = new PaginateElasticaQuerySubscriber(); |
|
138 | $subscriber->setRequest(new Request(['ord' => 'owner.name'])); |
|
139 | ||
140 | $query = new Query(); |
|
141 | $adapter = $this->getAdapterMock(); |
|
142 | $adapter->method('getQuery') |
|
143 | ->willReturn($query); |
|
144 | ||
145 | $adapter->method('getResults') |
|
146 | ->willReturn($this->getResultSetMock()); |
|
147 | ||
148 | $event = new ItemsEvent(0, 10); |
|
149 | $event->target = $adapter; |
|
150 | $event->options = [ |
|
151 | 'defaultSortFieldName' => 'createdAt', |
|
152 | 'sortFieldParameterName' => 'ord', |
|
153 | 'sortDirectionParameterName' => 'az', |
|
154 | 'sortNestedPath' => 'owner', |
|
155 | ]; |
|
156 | ||
157 | $subscriber->items($event); |
|
158 | $this->assertEquals([ |
|
159 | 'owner.name' => [ |
|
160 | 'order' => 'asc', |
|
161 | 'ignore_unmapped' => true, |
|
162 | 'nested_path' => 'owner', |
|
163 | ] |
|
164 | ], $query->getParam('sort')); |
|
165 | } |
|
166 | ||
167 | public function testShouldInvokeCallableNestedPath() |
|
168 | { |
|
@@ 167-200 (lines=34) @@ | ||
164 | ], $query->getParam('sort')); |
|
165 | } |
|
166 | ||
167 | public function testShouldInvokeCallableNestedPath() |
|
168 | { |
|
169 | $subscriber = new PaginateElasticaQuerySubscriber(); |
|
170 | $subscriber->setRequest(new Request(['ord' => 'owner.name'])); |
|
171 | ||
172 | $query = new Query(); |
|
173 | $adapter = $this->getAdapterMock(); |
|
174 | $adapter->method('getQuery') |
|
175 | ->willReturn($query); |
|
176 | ||
177 | $adapter->method('getResults') |
|
178 | ->willReturn($this->getResultSetMock()); |
|
179 | ||
180 | $event = new ItemsEvent(0, 10); |
|
181 | $event->target = $adapter; |
|
182 | $event->options = [ |
|
183 | 'defaultSortFieldName' => 'createdAt', |
|
184 | 'sortFieldParameterName' => 'ord', |
|
185 | 'sortDirectionParameterName' => 'az', |
|
186 | 'sortNestedPath' => function ($sortField) { |
|
187 | $this->assertEquals('owner.name', $sortField); |
|
188 | return 'owner'; |
|
189 | }, |
|
190 | ]; |
|
191 | ||
192 | $subscriber->items($event); |
|
193 | $this->assertEquals([ |
|
194 | 'owner.name' => [ |
|
195 | 'order' => 'asc', |
|
196 | 'ignore_unmapped' => true, |
|
197 | 'nested_path' => 'owner', |
|
198 | ] |
|
199 | ], $query->getParam('sort')); |
|
200 | } |
|
201 | ||
202 | public function testShouldAddNestedFilter() |
|
203 | { |