Add parameters for Request::__construct
This commit is contained in:
parent
4d5430e589
commit
cee55cada0
|
|
@ -3,12 +3,13 @@
|
|||
namespace WellRESTed\Message;
|
||||
|
||||
use Psr\Http\Message\RequestInterface;
|
||||
use Psr\Http\Message\StreamInterface;
|
||||
use Psr\Http\Message\UriInterface;
|
||||
|
||||
class Request extends Message implements RequestInterface
|
||||
{
|
||||
/** @var string */
|
||||
protected $method = "GET";
|
||||
protected $method;
|
||||
/** @var string */
|
||||
protected $requestTarget;
|
||||
/** @var UriInterface */
|
||||
|
|
@ -16,12 +17,41 @@ class Request extends Message implements RequestInterface
|
|||
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
/**
|
||||
* @param UriInterface $uri
|
||||
* @param string $method
|
||||
* @param array $headers
|
||||
* @param StreamInterface $body
|
||||
*/
|
||||
public function __construct(
|
||||
UriInterface $uri = null,
|
||||
$method = "GET",
|
||||
array $headers = null,
|
||||
StreamInterface $body = null
|
||||
) {
|
||||
parent::__construct();
|
||||
|
||||
if ($uri !== null) {
|
||||
$this->uri = $uri;
|
||||
} else {
|
||||
$this->uri = new Uri();
|
||||
}
|
||||
|
||||
$this->method = $method;
|
||||
|
||||
if ($headers) {
|
||||
foreach ($headers as $name => $values) {
|
||||
foreach ($values as $value) {
|
||||
$this->headers[$name] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($body !== null) {
|
||||
$this->body = $body;
|
||||
}
|
||||
}
|
||||
|
||||
public function __clone()
|
||||
{
|
||||
$this->uri = clone $this->uri;
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ use WellRESTed\Message\Uri;
|
|||
class RequestTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
// ------------------------------------------------------------------------
|
||||
// Construction
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\Request::__construct
|
||||
|
|
@ -25,6 +26,48 @@ class RequestTest extends \PHPUnit_Framework_TestCase
|
|||
$this->assertNotNull($request);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\Request::__construct
|
||||
*/
|
||||
public function testCreatesInstanceWithUri()
|
||||
{
|
||||
$uri = $this->prophesize('Psr\Http\Message\UriInterface');
|
||||
$uri = $uri->reveal();
|
||||
$request = new Request($uri);
|
||||
$this->assertSame($uri, $request->getUri());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\Request::__construct
|
||||
*/
|
||||
public function testCreatesInstanceWithMethod()
|
||||
{
|
||||
$method = "POST";
|
||||
$request = new Request(null, $method);
|
||||
$this->assertSame($method, $request->getMethod());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\Request::__construct
|
||||
*/
|
||||
public function testSetsHeadersOnConstruction()
|
||||
{
|
||||
$request = new Request(null, null, [
|
||||
"X-foo" => ["bar","baz"]
|
||||
]);
|
||||
$this->assertEquals(["bar","baz"], $request->getHeader("X-foo"));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WellRESTed\Message\Request::__construct
|
||||
*/
|
||||
public function testSetsBodyOnConstruction()
|
||||
{
|
||||
$body = $this->prophesize('\Psr\Http\Message\StreamInterface');
|
||||
$request = new Request(null, null, [], $body->reveal());
|
||||
$this->assertSame($body->reveal(), $request->getBody());
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Request Target
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue