/** * @param DatatableRequest $datatableRequest * @return ComplexSearchService */ protected function getSearchServiceMock(DatatableRequest $datatableRequest) { $filters = $datatableRequest->getFilters(); $queryProphecy = $this->prophesize('\\oat\\tao\\test\\datatable\\QueryMock'); $queryProphecy->addCriterion(Argument::type('string'), Argument::type('string'), Argument::type('string'))->shouldBeCalledTimes(count($filters)); $queryMock = $queryProphecy->reveal(); $queryBuilderProphecy = $this->prophesize('\\oat\\search\\QueryBuilder'); $queryBuilderProphecy->setCriteria($queryMock)->shouldBeCalledTimes(count($filters)); $queryBuilderProphecy->sort(Argument::any())->shouldBeCalledTimes(1); $queryBuilderProphecy->setLimit(Argument::type('integer'))->shouldBeCalledTimes(1); $queryBuilderProphecy->setOffset(Argument::type('integer'))->shouldBeCalledTimes(1); $queryBuilderMock = $queryBuilderProphecy->reveal(); $resultProphecy = $this->prophesize('\\oat\\generis\\model\\kernel\\persistence\\smoothsql\\search\\TaoResultSet'); $resultProphecy->count()->willReturn(1)->shouldBeCalledTimes(1); $resultProphecy->total()->willReturn(2)->shouldBeCalledTimes(1); $resultProphecy->getArrayCopy()->willReturn([])->shouldBeCalledTimes(1); $result = $resultProphecy->reveal(); $gatewayProphecy = $this->prophesize('\\oat\\search\\TaoSearchGateWay'); $gatewayProphecy->search($queryBuilderMock)->willReturn($result)->shouldBeCalledTimes(1); $gatewayMock = $gatewayProphecy->reveal(); $service = $this->prophesize('\\oat\\generis\\model\\kernel\\persistence\\smoothsql\\search\\ComplexSearchService'); $service->query()->willReturn($queryBuilderMock)->shouldBeCalledTimes(1); $service->getGateway()->willReturn($gatewayMock)->shouldBeCalledTimes(1); $service->searchType($queryBuilderMock, Argument::type('string'), true)->shouldBeCalledTimes(1)->willReturn($queryMock); return $service->reveal(); }
/** * @dataProvider environmentsProvider * @preserveGlobalState disabled * * @param Environment $env * @param array $result expected results */ public function testGetFilters($env, $result) { $request = Request::createFromEnvironment($env); $datatableRequest = new DatatableRequest($request); $this->assertEquals($result['filters'], $datatableRequest->getFilters()); }
/** * @return array */ protected function getFilters() { return $this->request->getFilters(); }