*/
/**
* Apache_Solr_HttpTransport_Response Unit Tests
*/
class Apache_Solr_HttpTransport_ResponseTest extends PHPUnit_Framework_TestCase
{
// generated with the following query string: select?q=solr&wt=json
const STATUS_CODE_200 = 200;
const STATUS_MESSAGE_200 = "OK";
const BODY_200 = '{"responseHeader":{"status":0,"QTime":0,"params":{"q":"solr","wt":"json"}},"response":{"numFound":0,"start":0,"docs":[]}}';
const BODY_200_WITH_DOCUMENTS = '{"responseHeader":{"status":0,"QTime":0,"params":{"q":"*:*","wt":"json"}},"response":{"numFound":1,"start":0,"docs":[{"guid":"dev/2/products/45410/1236981","cit_domain":"products","cit_client":"2","cit_instance":"dev","cit_timestamp":"2010-10-06T18:16:51.573Z","product_code_t":["235784"],"product_id":[1236981],"dealer_id":[45410],"category_id":[1030],"manufacturer_id":[0],"vendor_id":[472],"catalog_id":[202]}]}}';
const CONTENT_TYPE_200 = "text/plain; charset=utf-8";
const MIME_TYPE_200 = "text/plain";
const ENCODING_200 = "utf-8";
// generated with the following query string: select?qt=standad&q=solr&wt=json
// NOTE: the intentional mispelling of the standard in the qt parameter
const STATUS_CODE_400 = 400;
const STATUS_MESSAGE_400 = "Bad Request";
const BODY_400 = '
Apache Tomcat/6.0.24 - Error report HTTP Status 400 - unknown handler: standad
type Status report
message unknown handler: standad
description The request sent by the client was syntactically incorrect (unknown handler: standad).
Apache Tomcat/6.0.24
';
const CONTENT_TYPE_400 = "text/html; charset=utf-8";
const MIME_TYPE_400 = "text/html";
const ENCODING_400 = "utf-8";
// generated with the following query string: select?q=solr&wt=json on a core that does not exist
const STATUS_CODE_404 = 404;
const STATUS_MESSAGE_404 = "Not Found";
const BODY_404 = 'Apache Tomcat/6.0.24 - Error report HTTP Status 404 - /solr/doesnotexist/select
type Status report
message /solr/doesnotexist/select
description The requested resource (/solr/doesnotexist/select) is not available.
Apache Tomcat/6.0.24
';
const CONTENT_TYPE_404 = "text/html; charset=utf-8";
const MIME_TYPE_404 = "text/html";
const ENCODING_404 = "utf-8";
public static function get0Response()
{
return new Apache_Solr_HttpTransport_Response(null, null, null);
}
public static function get200Response()
{
return new Apache_Solr_HttpTransport_Response(self::STATUS_CODE_200, self::CONTENT_TYPE_200, self::BODY_200);
}
public static function get200ResponseWithDocuments()
{
return new Apache_Solr_HttpTransport_Response(self::STATUS_CODE_200, self::CONTENT_TYPE_200, self::BODY_200_WITH_DOCUMENTS);
}
public static function get400Response()
{
return new Apache_Solr_HttpTransport_Response(self::STATUS_CODE_400, self::CONTENT_TYPE_400, self::BODY_400);
}
public static function get404Response()
{
return new Apache_Solr_HttpTransport_Response(self::STATUS_CODE_404, self::CONTENT_TYPE_404, self::BODY_404);
}
public function testGetStatusCode()
{
$fixture = self::get200Response();
$statusCode = $fixture->getStatusCode();
$this->assertEquals(self::STATUS_CODE_200, $statusCode);
}
public function testGetStatusMessage()
{
$fixture = self::get200Response();
$statusMessage = $fixture->getStatusMessage();
$this->assertEquals(self::STATUS_MESSAGE_200, $statusMessage);
}
public function testGetStatusMessageWithUnknownCode()
{
$fixture = new Apache_Solr_HttpTransport_Response(499, null, null);
$statusMessage = $fixture->getStatusMessage();
$this->assertEquals("Unknown Status", $statusMessage);
}
public function testGetBody()
{
$fixture = self::get200Response();
$body = $fixture->getBody();
$this->assertEquals(self::BODY_200, $body);
}
public function testGetMimeType()
{
$fixture = self::get200Response();
$mimeType = $fixture->getMimeType();
$this->assertEquals(self::MIME_TYPE_200, $mimeType);
}
public function testGetEncoding()
{
$fixture = self::get200Response();
$encoding = $fixture->getEncoding();
$this->assertEquals(self::ENCODING_200, $encoding);
}
public function testGetStatusMessageWhenNotProvided()
{
// test 4 of the most common status code responses, probably don't need
// to test all the codes we have
$fixture = new Apache_Solr_HttpTransport_Response(null, null, null, null, null);
$this->assertEquals("Communication Error", $fixture->getStatusMessage(), 'Did not get correct default status message for status code 0');
$fixture = new Apache_Solr_HttpTransport_Response(200, null, null, null, null);
$this->assertEquals("OK", $fixture->getStatusMessage(), 'Did not get correct default status message for status code 200');
$fixture = new Apache_Solr_HttpTransport_Response(400, null, null, null, null);
$this->assertEquals("Bad Request", $fixture->getStatusMessage(), 'Did not get correct default status message for status code 400');
$fixture = new Apache_Solr_HttpTransport_Response(404, null, null, null, null);
$this->assertEquals("Not Found", $fixture->getStatusMessage(), 'Did not get correct default status message for status code 404');
}
}