_adapter = new Solarium_Client_Adapter_Http(); } public function testExecute() { $data = 'test123'; $request = new Solarium_Client_Request(); $request->setMethod(Solarium_Client_Request::METHOD_GET); $mock = $this->getMock('Solarium_Client_Adapter_Http', array('_getData','check')); $mock->expects($this->once()) ->method('_getData') ->with($this->equalTo('http://127.0.0.1:8983/solr/?'), $this->isType('resource')) ->will($this->returnValue(array($data, array('HTTP 1.1 200 OK')))); $mock->execute($request); } public function testExecuteErrorResponse() { $data = 'test123'; $request = new Solarium_Client_Request(); $mock = $this->getMock('Solarium_Client_Adapter_Http', array('_getData','check')); $mock->expects($this->once()) ->method('_getData') ->with($this->equalTo('http://127.0.0.1:8983/solr/?'), $this->isType('resource')) ->will($this->returnValue(array($data, array('HTTP 1.1 200 OK')))); $mock->expects($this->once()) ->method('check') ->will($this->throwException(new Solarium_Client_HttpException("HTTP request failed"))); $this->setExpectedException('Solarium_Client_HttpException'); $mock->execute($request); } public function testCheckError() { $this->setExpectedException('Solarium_Client_HttpException'); $this->_adapter->check(false, array()); } public function testCheckOk() { $value = $this->_adapter->check('dummydata',array('HTTP 1.1 200 OK')); $this->assertEquals( null, $value ); } public function testCreateContextGetRequest() { $timeout = 13; $method = Solarium_Client_Request::METHOD_HEAD; $request = new Solarium_Client_Request(); $request->setMethod($method); $this->_adapter->setTimeout($timeout); $context = $this->_adapter->createContext($request); $this->assertEquals( array('http' => array('method' => $method, 'timeout' => $timeout)), stream_context_get_options($context) ); } public function testCreateContextWithHeaders() { $timeout = 13; $method = Solarium_Client_Request::METHOD_HEAD; $header1 = 'Content-Type: text/xml; charset=UTF-8'; $header2 = 'X-MyHeader: dummyvalue'; $request = new Solarium_Client_Request(); $request->setMethod($method); $request->addHeader($header1); $request->addHeader($header2); $this->_adapter->setTimeout($timeout); $context = $this->_adapter->createContext($request); $this->assertEquals( array('http' => array('method' => $method, 'timeout' => $timeout, 'header' => $header1."\r\n".$header2)), stream_context_get_options($context) ); } 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) ); } }