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;
|
private $attributes;
|
||||||
/** @var array */
|
/** @var array */
|
||||||
private $cookieParams;
|
private $cookieParams;
|
||||||
/** @var array */
|
/** @var mixed */
|
||||||
private $uploadedFiles;
|
private $parsedBody;
|
||||||
/** @var array */
|
/** @var array */
|
||||||
private $queryParams;
|
private $queryParams;
|
||||||
/** @var array */
|
/** @var array */
|
||||||
private $serverParams;
|
private $serverParams;
|
||||||
/** @var mixed */
|
/** @var array */
|
||||||
private $parsedBody;
|
private $uploadedFiles;
|
||||||
|
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -26,6 +26,9 @@ class ServerRequest extends Request implements ServerRequestInterface
|
||||||
{
|
{
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
$this->attributes = [];
|
$this->attributes = [];
|
||||||
|
$this->cookieParams = [];
|
||||||
|
$this->queryParams = [];
|
||||||
|
$this->serverParams = [];
|
||||||
$this->uploadedFiles = [];
|
$this->uploadedFiles = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -224,6 +227,10 @@ class ServerRequest extends Request implements ServerRequestInterface
|
||||||
*/
|
*/
|
||||||
public function withParsedBody($data)
|
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 = clone $this;
|
||||||
$request->parsedBody = $data;
|
$request->parsedBody = $data;
|
||||||
return $request;
|
return $request;
|
||||||
|
|
|
||||||
|
|
@ -161,6 +161,15 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
// Server Params
|
// Server Params
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers WellRESTed\Message\ServerRequest::getServerParams
|
||||||
|
*/
|
||||||
|
public function testServerParamsIsEmptyByDefault()
|
||||||
|
{
|
||||||
|
$request = new ServerRequest();
|
||||||
|
$this->assertEquals([], $request->getServerParams());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\ServerRequest::getServerParams
|
* @covers WellRESTed\Message\ServerRequest::getServerParams
|
||||||
* @depends testGetServerRequestReadsFromRequest
|
* @depends testGetServerRequestReadsFromRequest
|
||||||
|
|
@ -174,6 +183,15 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
// Cookies
|
// Cookies
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers WellRESTed\Message\ServerRequest::getCookieParams
|
||||||
|
*/
|
||||||
|
public function testCookieParamsIsEmptyByDefault()
|
||||||
|
{
|
||||||
|
$request = new ServerRequest();
|
||||||
|
$this->assertEquals([], $request->getCookieParams());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\ServerRequest::getCookieParams
|
* @covers WellRESTed\Message\ServerRequest::getCookieParams
|
||||||
* @depends testGetServerRequestReadsFromRequest
|
* @depends testGetServerRequestReadsFromRequest
|
||||||
|
|
@ -201,6 +219,15 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
// Query
|
// Query
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers WellRESTed\Message\ServerRequest::getQueryParams
|
||||||
|
*/
|
||||||
|
public function testQueryParamsIsEmptyByDefault()
|
||||||
|
{
|
||||||
|
$request = new ServerRequest();
|
||||||
|
$this->assertEquals([], $request->getQueryParams());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\ServerRequest::getQueryParams
|
* @covers WellRESTed\Message\ServerRequest::getQueryParams
|
||||||
* @depends testGetServerRequestReadsFromRequest
|
* @depends testGetServerRequestReadsFromRequest
|
||||||
|
|
@ -228,6 +255,15 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
// Uploaded Files
|
// Uploaded Files
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers WellRESTed\Message\ServerRequest::getUploadedFiles
|
||||||
|
*/
|
||||||
|
public function testUploadedFilesIsEmptyByDefault()
|
||||||
|
{
|
||||||
|
$request = new ServerRequest();
|
||||||
|
$this->assertEquals([], $request->getUploadedFiles());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\ServerRequest::getUploadedFiles
|
* @covers WellRESTed\Message\ServerRequest::getUploadedFiles
|
||||||
* @preserveGlobalState disabled
|
* @preserveGlobalState disabled
|
||||||
|
|
@ -384,6 +420,15 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
// Parsed Body
|
// 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::getServerRequest
|
||||||
* @covers WellRESTed\Message\ServerRequest::getParsedBody
|
* @covers WellRESTed\Message\ServerRequest::getParsedBody
|
||||||
|
|
@ -431,6 +476,25 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
||||||
$this->assertEquals("Clyde", $body2["guinea_pig"]);
|
$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
|
* @covers WellRESTed\Message\ServerRequest::__clone
|
||||||
*/
|
*/
|
||||||
|
|
@ -450,6 +514,15 @@ class ServerRequestTest extends \PHPUnit_Framework_TestCase
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
// Attributes
|
// Attributes
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers WellRESTed\Message\ServerRequest::getAttributes
|
||||||
|
*/
|
||||||
|
public function testAttributesIsEmptyByDefault()
|
||||||
|
{
|
||||||
|
$request = new ServerRequest();
|
||||||
|
$this->assertEquals([], $request->getAttributes());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers WellRESTed\Message\ServerRequest::getAttribute
|
* @covers WellRESTed\Message\ServerRequest::getAttribute
|
||||||
* @depends testGetServerRequestReadsFromRequest
|
* @depends testGetServerRequestReadsFromRequest
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue