ServerRequest provides proper defaults and throws exception for bad parsed body
This commit is contained in:
parent
534bd43d9b
commit
dce4bdf572
|
|
@ -11,14 +11,14 @@ class ServerRequest extends Request implements ServerRequestInterface
|
|||
private $attributes;
|
||||
/** @var array */
|
||||
private $cookieParams;
|
||||
/** @var array */
|
||||
private $uploadedFiles;
|
||||
/** @var mixed */
|
||||
private $parsedBody;
|
||||
/** @var array */
|
||||
private $queryParams;
|
||||
/** @var array */
|
||||
private $serverParams;
|
||||
/** @var mixed */
|
||||
private $parsedBody;
|
||||
/** @var array */
|
||||
private $uploadedFiles;
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -26,6 +26,9 @@ class ServerRequest extends Request implements ServerRequestInterface
|
|||
{
|
||||
parent::__construct();
|
||||
$this->attributes = [];
|
||||
$this->cookieParams = [];
|
||||
$this->queryParams = [];
|
||||
$this->serverParams = [];
|
||||
$this->uploadedFiles = [];
|
||||
}
|
||||
|
||||
|
|
@ -224,6 +227,10 @@ class ServerRequest extends Request implements ServerRequestInterface
|
|||
*/
|
||||
public function withParsedBody($data)
|
||||
{
|
||||
if (!(is_null($data) || is_array($data) || is_object($data))) {
|
||||
throw new \InvalidArgumentException("Parsed body must be null, array, or object.");
|
||||
}
|
||||
|
||||
$request = clone $this;
|
||||
$request->parsedBody = $data;
|
||||
return $request;
|
||||
|
|
|
|||
|
|
@ -161,6 +161,15 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
|||
// ------------------------------------------------------------------------
|
||||
// Server Params
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::getServerParams
|
||||
*/
|
||||
public function testServerParamsIsEmptyByDefault()
|
||||
{
|
||||
$request = new ServerRequest();
|
||||
$this->assertEquals([], $request->getServerParams());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::getServerParams
|
||||
* @depends testGetServerRequestReadsFromRequest
|
||||
|
|
@ -174,6 +183,15 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
|||
// ------------------------------------------------------------------------
|
||||
// Cookies
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::getCookieParams
|
||||
*/
|
||||
public function testCookieParamsIsEmptyByDefault()
|
||||
{
|
||||
$request = new ServerRequest();
|
||||
$this->assertEquals([], $request->getCookieParams());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::getCookieParams
|
||||
* @depends testGetServerRequestReadsFromRequest
|
||||
|
|
@ -201,6 +219,15 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
|||
// ------------------------------------------------------------------------
|
||||
// Query
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::getQueryParams
|
||||
*/
|
||||
public function testQueryParamsIsEmptyByDefault()
|
||||
{
|
||||
$request = new ServerRequest();
|
||||
$this->assertEquals([], $request->getQueryParams());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::getQueryParams
|
||||
* @depends testGetServerRequestReadsFromRequest
|
||||
|
|
@ -228,6 +255,15 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
|||
// ------------------------------------------------------------------------
|
||||
// Uploaded Files
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::getUploadedFiles
|
||||
*/
|
||||
public function testUploadedFilesIsEmptyByDefault()
|
||||
{
|
||||
$request = new ServerRequest();
|
||||
$this->assertEquals([], $request->getUploadedFiles());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::getUploadedFiles
|
||||
* @preserveGlobalState disabled
|
||||
|
|
@ -384,6 +420,15 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
|||
// ------------------------------------------------------------------------
|
||||
// Parsed Body
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::getParsedBody
|
||||
*/
|
||||
public function testParsedBodyIsNullByDefault()
|
||||
{
|
||||
$request = new ServerRequest();
|
||||
$this->assertNull($request->getParsedBody());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::getServerRequest
|
||||
* @covers WellRESTed\Message\ServerRequest::getParsedBody
|
||||
|
|
@ -431,6 +476,25 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
|||
$this->assertEquals("Clyde", $body2["guinea_pig"]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::withParsedBody
|
||||
* @expectedException \InvalidArgumentException
|
||||
* @dataProvider invalidParsedBodyProvider
|
||||
*/
|
||||
public function testWithParsedBodyThrowsExceptionWithInvalidType($body)
|
||||
{
|
||||
$request = new ServerRequest();
|
||||
$request->withParsedBody($body);
|
||||
}
|
||||
|
||||
public function invalidParsedBodyProvider()
|
||||
{
|
||||
return [
|
||||
[false],
|
||||
[1]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::__clone
|
||||
*/
|
||||
|
|
@ -450,6 +514,15 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
|||
// ------------------------------------------------------------------------
|
||||
// Attributes
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::getAttributes
|
||||
*/
|
||||
public function testAttributesIsEmptyByDefault()
|
||||
{
|
||||
$request = new ServerRequest();
|
||||
$this->assertEquals([], $request->getAttributes());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\ServerRequest::getAttribute
|
||||
* @depends testGetServerRequestReadsFromRequest
|
||||
|
|
|
|||
Loading…
Reference in New Issue