/** * Build request for an update query * * @param Solarium_Query_Update $query * @return Solarium_Client_Request */ public function build($query) { $request = new Solarium_Client_Request(); $request->setHandler($query->getHandler()); $request->setMethod(Solarium_Client_Request::METHOD_POST); $request->addParam('wt', 'json'); $request->setRawData($this->getRawData($query)); return $request; }
public function testExecute() { $method = Solarium_Client_Request::METHOD_GET; $rawData = 'xyz'; $responseData = 'abc'; $handler = 'myhandler'; $request = new Solarium_Client_Request(); $request->setMethod($method); $request->setHandler($handler); $request->setRawData($rawData); $response = new Zend_Http_Response(200, array('status' => 'HTTP 1.1 200 OK'), $responseData); $mock = $this->getMock('Zend_Http_Client'); $mock->expects($this->once())->method('setMethod')->with($this->equalTo($method)); $mock->expects($this->once())->method('setUri')->with($this->equalTo('http://127.0.0.1:8983/solr/myhandler?')); $mock->expects($this->once())->method('setRawData')->with($this->equalTo($rawData)); $mock->expects($this->once())->method('request')->will($this->returnValue($response)); $this->_adapter->setZendHttp($mock); $adapterResponse = $this->_adapter->execute($request); $this->assertEquals($responseData, $adapterResponse->getBody()); }
public function testGetAndSetRawData() { $data = '1234567890'; $this->_request->setRawData($data); $this->assertEquals($data, $this->_request->getRawData()); }
public function testCreateContextPostRequest() { $timeout = 13; $method = Solarium_Client_Request::METHOD_POST; $data = 'test123'; $request = new Solarium_Client_Request(); $request->setMethod($method); $request->setRawData($data); $this->_adapter->setTimeout($timeout); $context = $this->_adapter->createContext($request); $this->assertEquals(array('http' => array('method' => $method, 'timeout' => $timeout, 'content' => $data, 'header' => 'Content-Type: text/xml; charset=UTF-8')), stream_context_get_options($context)); }
/** * Event hook to adjust client settings just before query execution * * @param Solarium_Query $query * @param Solarium_Client_Request $request * @return void */ public function postCreateRequest($query, $request) { $queryString = $request->getQueryString(); if ($request->getMethod() == Solarium_Client_Request::METHOD_GET && strlen($queryString) > $this->getMaxQueryStringLength()) { $request->setMethod(Solarium_Client_Request::METHOD_POST); $request->setRawData($queryString); $request->clearParams(); $request->addHeader('Content-Type: application/x-www-form-urlencoded'); } }