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