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