/** * Add the query result to the API output. * * @since 1.6.2 * * @param SMWQueryResult $queryResult */ protected function addQueryResult(SMWQueryResult $queryResult) { $result = $this->getResult(); $resultFormatter = new ApiQueryResultFormatter($queryResult); $resultFormatter->setIsRawMode($result->getIsRawMode()); $resultFormatter->doFormat(); if ($resultFormatter->getContinueOffset()) { $result->disableSizeCheck(); $result->addValue(null, 'query-continue-offset', $resultFormatter->getContinueOffset()); $result->enableSizeCheck(); } $result->addValue(null, $resultFormatter->getType(), $resultFormatter->getResult()); }
/** * Add the query result to the API output. * * @since 1.6.2 * * @param SMWQueryResult $queryResult */ protected function addQueryResult(SMWQueryResult $queryResult, $outputFormat = 'json') { $result = $this->getResult(); $resultFormatter = new ApiQueryResultFormatter($queryResult); $resultFormatter->setIsRawMode(strpos(strtolower($outputFormat), 'xml') !== false); $resultFormatter->doFormat(); if ($resultFormatter->getContinueOffset()) { // $result->disableSizeCheck(); $result->addValue(null, 'query-continue-offset', $resultFormatter->getContinueOffset()); // $result->enableSizeCheck(); } $result->addValue(null, $resultFormatter->getType(), $resultFormatter->getResult()); }
/** * @dataProvider resultDataProvider */ public function testResultFormat(array $parameters, array $expected) { $queryResult = $this->getMockBuilder('\\SMWQueryResult')->disableOriginalConstructor()->getMock(); $queryResult->expects($this->atLeastOnce())->method('toArray')->will($this->returnValue($parameters['result'])); $queryResult->expects($this->atLeastOnce())->method('getErrors')->will($this->returnValue(array())); $queryResult->expects($this->atLeastOnce())->method('hasFurtherResults')->will($this->returnValue($parameters['furtherResults'])); $instance = new ApiQueryResultFormatter($queryResult); $instance->setIsRawMode($parameters['rawMode']); $instance->doFormat(); $this->assertEquals('query', $instance->getType()); $this->assertEquals($expected['result'], $instance->getResult()); $this->assertEquals($expected['continueOffset'], $instance->getContinueOffset()); }