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