示例#1
0
 /**
  * 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());
 }
示例#3
0
 public function testGetAndSetRawData()
 {
     $data = '1234567890';
     $this->_request->setRawData($data);
     $this->assertEquals($data, $this->_request->getRawData());
 }
示例#4
0
 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');
     }
 }